From 169510c4c235285769c9ffdbc30b3046cdb385fc Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Tue, 2 Dec 2025 12:06:11 +0100 Subject: [PATCH 01/11] add profile and uncore-cache Test Suites to release bootc scenarios --- test/scenarios-bootc/releases/el96-lrel@low-latency.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/scenarios-bootc/releases/el96-lrel@low-latency.sh b/test/scenarios-bootc/releases/el96-lrel@low-latency.sh index 575e81e30b..ade84049a1 100644 --- a/test/scenarios-bootc/releases/el96-lrel@low-latency.sh +++ b/test/scenarios-bootc/releases/el96-lrel@low-latency.sh @@ -44,6 +44,8 @@ scenario_run_tests() { run_tests host1 \ --exitonfailure \ + suites/tuned/profile.robot \ suites/tuned/microshift-tuned.robot \ - suites/tuned/workload-partitioning.robot + suites/tuned/workload-partitioning.robot \ + suites/tuned/uncore-cache.robot } From 4840aa21d5f5b742e8b860a962bd6136719d60c0 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Tue, 2 Dec 2025 16:39:37 +0100 Subject: [PATCH 02/11] add 2 new scenarios to test latest released bootc image from konflux --- Makefile.kube_git.var | 2 +- Makefile.version.aarch64.var | 2 +- Makefile.version.x86_64.var | 2 +- .../multus/kustomization.aarch64.yaml | 4 +- .../multus/kustomization.x86_64.yaml | 4 +- .../multus/release-multus-aarch64.json | 6 +- .../multus/release-multus-x86_64.json | 6 +- assets/components/service-ca/deployment.yaml | 5 +- .../kustomization.aarch64.yaml | 10 +- .../kustomization.x86_64.yaml | 10 +- .../release-olm-aarch64.json | 8 +- .../release-olm-x86_64.json | 8 +- assets/optional/sriov/deploy/operator.yaml | 20 +- .../optional/sriov/release-sriov-aarch64.json | 22 +- .../optional/sriov/release-sriov-x86_64.json | 22 +- assets/release/release-aarch64.json | 16 +- assets/release/release-x86_64.json | 16 +- ...hboard-microshift-telemetry.configmap.yaml | 640 ++- .../csimock/mutable_csinode_allocatable.go | 65 +- .../test/e2e/storage/drivers/csi.go | 111 +- .../test/e2e/storage/openshift_csi_volumes.go | 7 +- .../testsuites/volume_group_snapshottable.go | 11 +- .../storage/utils/volume_group_snapshot.go | 8 +- .../storage-csi/external-attacher/rbac.yaml | 4 +- .../rbac.yaml | 4 +- .../external-provisioner/rbac.yaml | 4 +- .../storage-csi/external-resizer/rbac.yaml | 5 +- .../csi-snapshotter/rbac-csi-snapshotter.yaml | 9 +- ...age.k8s.io_volumegroupsnapshotclasses.yaml | 86 +- ...ge.k8s.io_volumegroupsnapshotcontents.yaml | 339 +- ...t.storage.k8s.io_volumegroupsnapshots.yaml | 223 +- .../csi-hostpath-plugin.yaml | 2 +- .../run_group_snapshot_e2e.sh | 15 +- .../storage-csi/hostpath/README.md | 2 +- .../hostpath/csi-hostpath-plugin.yaml | 34 +- .../hostpath/csi-hostpath-testing.yaml | 2 +- .../mock/csi-mock-driver-attacher.yaml | 2 +- .../mock/csi-mock-driver-resizer.yaml | 2 +- .../mock/csi-mock-driver-snapshotter.yaml | 2 +- .../storage-csi/mock/csi-mock-driver.yaml | 6 +- .../storage-csi/mock/csi-mock-proxy.yaml | 6 +- .../storage-csi/update-hostpath.sh | 15 +- etcd/go.mod | 8 +- etcd/go.sum | 16 +- .../api/config/v1/types_cluster_version.go | 18 +- .../api/config/v1/types_infrastructure.go | 135 + ..._generated.featuregated-crd-manifests.yaml | 3 + .../v1/zz_generated.swagger_doc_generated.go | 11 +- .../openshift/api/features/features.go | 926 ++++ .../api/features/legacyfeaturegates.go | 119 + .../github.com/openshift/api/features/util.go | 224 + .../operator/v1/types_csi_cluster_driver.go | 1 - .../api/operator/v1/types_ingress.go | 17 + .../v1/zz_generated.swagger_doc_generated.go | 2 +- .../microshift/pkg/config/apiserver.go | 102 + .../openshift/microshift/pkg/config/config.go | 14 +- .../openshift/microshift/pkg/util/net.go | 6 +- etcd/vendor/k8s.io/utils/net/multi_listen.go | 6 +- etcd/vendor/modules.txt | 9 +- go.mod | 12 +- go.sum | 20 +- .../crio.conf.d/10-microshift_amd64.conf | 2 +- .../crio.conf.d/10-microshift_arm64.conf | 2 +- pkg/assets/apps.go | 5 +- pkg/assets/crd.go | 2 +- pkg/config/config_test.go | 11 + pkg/controllers/etcd.go | 5 +- pkg/controllers/hostswatcher.go | 24 + pkg/controllers/kube-apiserver.go | 30 +- pkg/util/net.go | 6 +- scripts/auto-rebase/changelog.txt | 4098 +++-------------- scripts/auto-rebase/commits.txt | 40 +- scripts/auto-rebase/last_rebase.sh | 2 +- scripts/auto-rebase/rebase.py | 292 +- scripts/auto-rebase/rebase.sh | 30 +- scripts/pyutils/create-venv.sh | 18 + scripts/pyutils/ghutils.py | 169 + scripts/pyutils/gitutils.py | 140 + scripts/pyutils/requirements.txt | 2 + test/assets/common_versions.sh.template | 60 +- test/bin/ci_phase_iso_build.sh | 3 + test/bin/common.sh | 11 +- test/bin/common_versions.sh | 56 +- test/bin/common_versions_verify.sh | 19 + test/bin/manage_brew_rpms.sh | 2 +- test/bin/pyutils/generate_common_versions.py | 217 +- ...c-brew-ec-with-optional-fips.containerfile | 5 +- ...c-brew-rc-with-optional-fips.containerfile | 5 +- ...w-zstream-with-optional-fips.containerfile | 5 +- .../rhel96-bootc-source-fips.containerfile | 5 +- .../group1/rhel96-source-isolated.toml | 6 + test/resources/common.resource | 11 + ... => el96-src@fault-tests-and-greenboot.sh} | 5 +- .../periodics/el96-src@fault-tests.sh | 16 - ...-src@fips.sh.disabled => el96-src@fips.sh} | 0 ...src@gitops-telemetry-clusterid-systemd.sh} | 7 +- .../periodics/el96-src@greenboot.sh | 16 - .../periodics/el96-src@osconfig-misc.sh | 18 - .../releases/el100-lrel@ginkgo-tests.sh | 36 + .../releases/el100-lrel@standard1.sh | 35 + .../releases/el100-lrel@standard2.sh | 33 + ...rel@fips.sh.disabled => el96-lrel@fips.sh} | 0 .../el96-lrel@konflux-images-standard1.sh | 34 + .../el96-lrel@konflux-images-standard2.sh | 33 + ...s-rpm.sh.disabled => el96-src@fips-rpm.sh} | 0 ...-src@fips.sh.disabled => el96-src@fips.sh} | 0 .../presubmits/el96-src@low-latency.sh | 3 +- .../releases/el96-lrel@low-latency.sh | 3 +- test/suites/optional/cert-manager.robot | 53 +- test/suites/standard1/dns.robot | 31 +- test/suites/tuned/uncore-cache.robot | 86 + test/suites/tuned/workload-partitioning.robot | 10 - .../github.com/openshift/api/.golangci.yaml | 24 +- vendor/github.com/openshift/api/AGENTS.md | 15 + vendor/github.com/openshift/api/Makefile | 44 +- .../api/config/v1/types_cluster_version.go | 18 +- .../api/config/v1/types_infrastructure.go | 135 + ..._generated.featuregated-crd-manifests.yaml | 3 + .../v1/zz_generated.swagger_doc_generated.go | 11 +- .../openshift/api/envtest-releases.yaml | 13 + vendor/github.com/openshift/api/features.md | 19 +- .../openshift/api/features/features.go | 58 +- .../api/machine/v1beta1/types_awsprovider.go | 51 + .../api/machine/v1beta1/types_gcpprovider.go | 16 + .../machine/v1beta1/zz_generated.deepcopy.go | 52 + .../zz_generated.swagger_doc_generated.go | 21 + .../operator/v1/types_csi_cluster_driver.go | 1 - .../api/operator/v1/types_ingress.go | 17 + .../v1/zz_generated.swagger_doc_generated.go | 2 +- .../openshift/api/route/v1/generated.proto | 4 +- .../openshift/api/route/v1/types.go | 4 +- .../v1/zz_generated.swagger_doc_generated.go | 2 +- .../resourceapply/admissionregistration.go | 48 + .../resource/resourceapply/generic.go | 26 +- .../resource/resourceapply/networking.go | 16 +- .../resource/resourceapply/storage.go | 54 +- vendor/k8s.io/utils/net/multi_listen.go | 6 +- vendor/modules.txt | 12 +- 138 files changed, 5388 insertions(+), 4402 deletions(-) create mode 100644 etcd/vendor/github.com/openshift/api/features/features.go create mode 100644 etcd/vendor/github.com/openshift/api/features/legacyfeaturegates.go create mode 100644 etcd/vendor/github.com/openshift/api/features/util.go create mode 100755 scripts/pyutils/create-venv.sh create mode 100644 scripts/pyutils/ghutils.py create mode 100644 scripts/pyutils/gitutils.py create mode 100644 scripts/pyutils/requirements.txt create mode 100644 test/bin/common_versions_verify.sh rename test/scenarios-bootc/periodics/{el96-src@gitops.sh => el96-src@fault-tests-and-greenboot.sh} (81%) delete mode 100644 test/scenarios-bootc/periodics/el96-src@fault-tests.sh rename test/scenarios-bootc/periodics/{el96-src@fips.sh.disabled => el96-src@fips.sh} (100%) rename test/scenarios-bootc/periodics/{el96-src@telemetry.sh => el96-src@gitops-telemetry-clusterid-systemd.sh} (73%) mode change 100644 => 100755 delete mode 100644 test/scenarios-bootc/periodics/el96-src@greenboot.sh delete mode 100644 test/scenarios-bootc/periodics/el96-src@osconfig-misc.sh create mode 100644 test/scenarios-bootc/releases/el100-lrel@ginkgo-tests.sh create mode 100644 test/scenarios-bootc/releases/el100-lrel@standard1.sh create mode 100644 test/scenarios-bootc/releases/el100-lrel@standard2.sh rename test/scenarios-bootc/releases/{el96-lrel@fips.sh.disabled => el96-lrel@fips.sh} (100%) create mode 100644 test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh create mode 100644 test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh rename test/scenarios/periodics/{el96-src@fips-rpm.sh.disabled => el96-src@fips-rpm.sh} (100%) rename test/scenarios/periodics/{el96-src@fips.sh.disabled => el96-src@fips.sh} (100%) create mode 100644 test/suites/tuned/uncore-cache.robot diff --git a/Makefile.kube_git.var b/Makefile.kube_git.var index 193c79b2f6..3711a49c35 100644 --- a/Makefile.kube_git.var +++ b/Makefile.kube_git.var @@ -1,5 +1,5 @@ KUBE_GIT_MAJOR=1 KUBE_GIT_MINOR=34 KUBE_GIT_VERSION=v1.34.1 -KUBE_GIT_COMMIT=891f5bb0306166d5625b89fc8dc86bbc8c85f549 +KUBE_GIT_COMMIT=737c81eb7539786ccefc91ab54080c674c3ad78c KUBE_GIT_TREE_STATE=clean diff --git a/Makefile.version.aarch64.var b/Makefile.version.aarch64.var index 01eca97470..9661d4abf0 100644 --- a/Makefile.version.aarch64.var +++ b/Makefile.version.aarch64.var @@ -1 +1 @@ -OCP_VERSION := 4.21.0-0.nightly-arm64-2025-11-20-233918 +OCP_VERSION := 4.21.0-0.nightly-arm64-2025-11-28-004554 diff --git a/Makefile.version.x86_64.var b/Makefile.version.x86_64.var index f37ecd9c9a..923d366195 100644 --- a/Makefile.version.x86_64.var +++ b/Makefile.version.x86_64.var @@ -1 +1 @@ -OCP_VERSION := 4.21.0-0.nightly-2025-11-15-144034 +OCP_VERSION := 4.21.0-0.nightly-2025-11-22-193140 diff --git a/assets/components/multus/kustomization.aarch64.yaml b/assets/components/multus/kustomization.aarch64.yaml index 4f3c07f794..f6fed0e551 100644 --- a/assets/components/multus/kustomization.aarch64.yaml +++ b/assets/components/multus/kustomization.aarch64.yaml @@ -2,7 +2,7 @@ images: - name: multus-cni-microshift newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:5ec02d3677b5de054cf4db4b3878e899902b78042baea3d81e5d6e9ac00256f1 + digest: sha256:9c268397397578e3e67e51dc218d79f3ed001a00a7fd05eb4558d20cf6634bc8 - name: containernetworking-plugins-microshift newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:907a337f1169f79816b8be35323659c3fe29abb7c0a652880bd311f3dcdcaeae + digest: sha256:69573cb069a4aa846d8a2a78121c16bed4ac2cd2d2b326e2b7271815150042b5 diff --git a/assets/components/multus/kustomization.x86_64.yaml b/assets/components/multus/kustomization.x86_64.yaml index 6f05b6e710..f792ad728b 100644 --- a/assets/components/multus/kustomization.x86_64.yaml +++ b/assets/components/multus/kustomization.x86_64.yaml @@ -2,7 +2,7 @@ images: - name: multus-cni-microshift newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:3c9448c78d676d323f410a678b804667306dbff92f9187b395eda46e4343b4e2 + digest: sha256:cf67ae64a5a7aa1d0b3cf1dcc47234966c44f89a5c06afb5215b6b8e78233dd2 - name: containernetworking-plugins-microshift newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:7eeb9ee393f88cde73dc537d20de0d8b5beaa28221d89dc552483477c8691228 + digest: sha256:6a8292409da7e82bbd2dcb64ee54ad6c246e6cb148b735b7244b53c86990fe55 diff --git a/assets/components/multus/release-multus-aarch64.json b/assets/components/multus/release-multus-aarch64.json index e1eae0134b..12aee0650e 100644 --- a/assets/components/multus/release-multus-aarch64.json +++ b/assets/components/multus/release-multus-aarch64.json @@ -1,9 +1,9 @@ { "release": { - "base": "4.21.0-0.nightly-arm64-2025-11-20-233918" + "base": "4.21.0-0.nightly-arm64-2025-11-28-004554" }, "images": { - "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:5ec02d3677b5de054cf4db4b3878e899902b78042baea3d81e5d6e9ac00256f1", - "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:907a337f1169f79816b8be35323659c3fe29abb7c0a652880bd311f3dcdcaeae" + "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9c268397397578e3e67e51dc218d79f3ed001a00a7fd05eb4558d20cf6634bc8", + "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:69573cb069a4aa846d8a2a78121c16bed4ac2cd2d2b326e2b7271815150042b5" } } diff --git a/assets/components/multus/release-multus-x86_64.json b/assets/components/multus/release-multus-x86_64.json index 1adcbe1d3b..15e0c2e2d9 100644 --- a/assets/components/multus/release-multus-x86_64.json +++ b/assets/components/multus/release-multus-x86_64.json @@ -1,9 +1,9 @@ { "release": { - "base": "4.21.0-0.nightly-2025-11-15-144034" + "base": "4.21.0-0.nightly-2025-11-22-193140" }, "images": { - "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3c9448c78d676d323f410a678b804667306dbff92f9187b395eda46e4343b4e2", - "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:7eeb9ee393f88cde73dc537d20de0d8b5beaa28221d89dc552483477c8691228" + "multus-cni-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:cf67ae64a5a7aa1d0b3cf1dcc47234966c44f89a5c06afb5215b6b8e78233dd2", + "containernetworking-plugins-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6a8292409da7e82bbd2dcb64ee54ad6c246e6cb148b735b7244b53c86990fe55" } } diff --git a/assets/components/service-ca/deployment.yaml b/assets/components/service-ca/deployment.yaml index 86565a5e13..fc27a300fb 100644 --- a/assets/components/service-ca/deployment.yaml +++ b/assets/components/service-ca/deployment.yaml @@ -18,13 +18,12 @@ spec: name: service-ca annotations: target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' - openshift.io/required-scc: restricted-v3 + openshift.io/required-scc: restricted-v2 labels: app: service-ca service-ca: "true" spec: serviceAccountName: service-ca - hostUsers: false containers: - name: service-ca-controller image: '{{ .ReleaseImage.service_ca_operator }}' @@ -32,6 +31,8 @@ spec: command: ["service-ca-operator", "controller"] ports: - containerPort: 8443 + securityContext: + runAsNonRoot: true resources: requests: memory: 120Mi diff --git a/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml b/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml index 28c4625610..1cdf63455d 100644 --- a/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml +++ b/assets/optional/operator-lifecycle-manager/kustomization.aarch64.yaml @@ -2,13 +2,13 @@ images: - name: quay.io/operator-framework/olm newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:795e49c6ba0556737e1155d546f666e601122726899b4e260e3b2019464122a7 + digest: sha256:231f52273d90006c61de2a208f32493bceb9fd70d56704d6dd9490ecc6029ab3 - name: quay.io/operator-framework/configmap-operator-registry newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:e89657f7bcf32a90ed11049a0fbc57077b27e95cdb5a6a1482cb7d0bb48946f7 + digest: sha256:0cc15cc57414a968eb1eb66cecfc7bcb7bbc738005cb1316ac8c4785652f08b3 - name: quay.io/openshift/origin-kube-rbac-proxy newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:ceb5e5aaeea3132fe915939ad18c70d5b39e76f81c4e3f3dbb7c62f107a687f6 + digest: sha256:d4ba33fcc9731eccfbdedcf77a4a53ccff1883d93ce3a3ab6c0014eb26a30e09 patches: - patch: |- @@ -16,12 +16,12 @@ patches: path: /spec/template/spec/containers/0/env/- value: name: OPERATOR_REGISTRY_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e89657f7bcf32a90ed11049a0fbc57077b27e95cdb5a6a1482cb7d0bb48946f7 + value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:0cc15cc57414a968eb1eb66cecfc7bcb7bbc738005cb1316ac8c4785652f08b3 - op: add path: /spec/template/spec/containers/0/env/- value: name: OLM_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:795e49c6ba0556737e1155d546f666e601122726899b4e260e3b2019464122a7 + value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:231f52273d90006c61de2a208f32493bceb9fd70d56704d6dd9490ecc6029ab3 target: kind: Deployment labelSelector: app=catalog-operator diff --git a/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml b/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml index 1339083f2c..956e57c52a 100644 --- a/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml +++ b/assets/optional/operator-lifecycle-manager/kustomization.x86_64.yaml @@ -2,13 +2,13 @@ images: - name: quay.io/operator-framework/olm newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:fcc516d8b54e7315b4da60728790af5b076feaff6c4085530067a5f069ec3ccf + digest: sha256:c0dd7879f3dcea7b417ccf019944219eaecb20d70684d5bdce5b7e8b9e65e5b9 - name: quay.io/operator-framework/configmap-operator-registry newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:44641bea724e0f8c6174b2abaf31859db03c19853eb3cad62268f83c49aa6336 + digest: sha256:992f8c01153771329fa4ed9d9df6becc69a6d8af976cf413e9c08f66908ea0a7 - name: quay.io/openshift/origin-kube-rbac-proxy newName: quay.io/openshift-release-dev/ocp-v4.0-art-dev - digest: sha256:d192db5dc0d82363d029267ae9d8084689ae6a6983e4cae5defa26bf39612c12 + digest: sha256:c6acf77d3f17317bc2a9a2819e26efcc6bc6125453d3893f9c54c0c2a46b54c5 patches: - patch: |- @@ -16,12 +16,12 @@ patches: path: /spec/template/spec/containers/0/env/- value: name: OPERATOR_REGISTRY_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:44641bea724e0f8c6174b2abaf31859db03c19853eb3cad62268f83c49aa6336 + value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:992f8c01153771329fa4ed9d9df6becc69a6d8af976cf413e9c08f66908ea0a7 - op: add path: /spec/template/spec/containers/0/env/- value: name: OLM_IMAGE - value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fcc516d8b54e7315b4da60728790af5b076feaff6c4085530067a5f069ec3ccf + value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0dd7879f3dcea7b417ccf019944219eaecb20d70684d5bdce5b7e8b9e65e5b9 target: kind: Deployment labelSelector: app=catalog-operator diff --git a/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json b/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json index 04f90c3b2e..2284b50bbe 100644 --- a/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json +++ b/assets/optional/operator-lifecycle-manager/release-olm-aarch64.json @@ -1,10 +1,10 @@ { "release": { - "base": "4.21.0-0.nightly-arm64-2025-11-20-233918" + "base": "4.21.0-0.nightly-arm64-2025-11-28-004554" }, "images": { - "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:795e49c6ba0556737e1155d546f666e601122726899b4e260e3b2019464122a7", - "operator-registry": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:e89657f7bcf32a90ed11049a0fbc57077b27e95cdb5a6a1482cb7d0bb48946f7", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ceb5e5aaeea3132fe915939ad18c70d5b39e76f81c4e3f3dbb7c62f107a687f6" + "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:231f52273d90006c61de2a208f32493bceb9fd70d56704d6dd9490ecc6029ab3", + "operator-registry": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:0cc15cc57414a968eb1eb66cecfc7bcb7bbc738005cb1316ac8c4785652f08b3", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d4ba33fcc9731eccfbdedcf77a4a53ccff1883d93ce3a3ab6c0014eb26a30e09" } } diff --git a/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json b/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json index 20cebeb31c..9bf888ab4a 100644 --- a/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json +++ b/assets/optional/operator-lifecycle-manager/release-olm-x86_64.json @@ -1,10 +1,10 @@ { "release": { - "base": "4.21.0-0.nightly-2025-11-15-144034" + "base": "4.21.0-0.nightly-2025-11-22-193140" }, "images": { - "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fcc516d8b54e7315b4da60728790af5b076feaff6c4085530067a5f069ec3ccf", - "operator-registry": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:44641bea724e0f8c6174b2abaf31859db03c19853eb3cad62268f83c49aa6336", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d192db5dc0d82363d029267ae9d8084689ae6a6983e4cae5defa26bf39612c12" + "operator-lifecycle-manager": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c0dd7879f3dcea7b417ccf019944219eaecb20d70684d5bdce5b7e8b9e65e5b9", + "operator-registry": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:992f8c01153771329fa4ed9d9df6becc69a6d8af976cf413e9c08f66908ea0a7", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c6acf77d3f17317bc2a9a2819e26efcc6bc6125453d3893f9c54c0c2a46b54c5" } } diff --git a/assets/optional/sriov/deploy/operator.yaml b/assets/optional/sriov/deploy/operator.yaml index 08ea938efb..bbe5e7b172 100644 --- a/assets/optional/sriov/deploy/operator.yaml +++ b/assets/optional/sriov/deploy/operator.yaml @@ -22,21 +22,21 @@ spec: fieldRef: fieldPath: metadata.annotations['olm.targetNamespaces'] - name: SRIOV_CNI_IMAGE - value: registry.redhat.io/openshift4/sriov-cni-rhel9@sha256:df980a59a7c2b522c489b848987055697efe5ff9adfa6d280c245b05eca86df0 + value: registry.redhat.io/openshift4/sriov-cni-rhel9@sha256:9a6e16e1673460f3b2691301e5abfd37e400e8ff51b185700f19aa06aa069324 - name: SRIOV_DEVICE_PLUGIN_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-network-device-plugin-rhel9@sha256:6b0bab13ff2c5152ce8730ab5d166d259aceb1319b5ec883706fb604b8744e74 + value: registry.redhat.io/openshift4/ose-sriov-network-device-plugin-rhel9@sha256:d5480310e39b86502d06d66a44aabd7490527b66a09c9c75276a6e9b0b1973cb - name: NETWORK_RESOURCES_INJECTOR_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-dp-admission-controller-rhel9@sha256:523b049f9a55f15bf3bc683c06eda78e955dd4500d3edc15d99c66170f5c0d4c + value: registry.redhat.io/openshift4/ose-sriov-dp-admission-controller-rhel9@sha256:cab4774be962f72ec02bafe6d35e7c511b2455b9706e97f7b64654fe8fc2a675 - name: OPERATOR_NAME value: sriov-network-operator - name: SRIOV_NETWORK_CONFIG_DAEMON_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-network-config-daemon-rhel9@sha256:0cb0fdba5d99facde4cf0c7bb2b02e6d856a731c202dc26a4acae7469131bef5 + value: registry.redhat.io/openshift4/ose-sriov-network-config-daemon-rhel9@sha256:17b027462b3de2db248afc8cf75b41c82bdeb76ea714a3cba0e650cfac1da464 - name: SRIOV_NETWORK_WEBHOOK_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-network-webhook-rhel9@sha256:958f080590fff38909f309860f7387b7a5ee2b8de3a1c8d1a375f68fb5c0c350 + value: registry.redhat.io/openshift4/ose-sriov-network-webhook-rhel9@sha256:22abe1264a10e4dcbd16a5fb84d1a068a5e785c832f1b06f95863bf74870a5bf - name: SRIOV_INFINIBAND_CNI_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-infiniband-cni-rhel9@sha256:1d2afb78f381c55033ac92dce43f26767433e9f965b57f81b9d5d36c106cbf4e + value: registry.redhat.io/openshift4/ose-sriov-infiniband-cni-rhel9@sha256:20efb10a67ec672d5380bc003986131c0384a3e5964009ca85133dba4cf34f66 - name: RDMA_CNI_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-rdma-cni-rhel9@sha256:5b49ca4846aa187bb292c1b043975c5c4f821adccad243c1317b7b195ebd0f12 + value: registry.redhat.io/openshift4/ose-sriov-rdma-cni-rhel9@sha256:a4fa8b599fbfc2e32e055b8ff9f3d320c9567798ec99fa5ae28d0005bdff36b3 - name: RESOURCE_PREFIX value: openshift.io - name: ADMISSION_CONTROLLERS_ENABLED @@ -46,9 +46,9 @@ spec: - name: ADMISSION_CONTROLLERS_CERTIFICATES_INJECTOR_SECRET_NAME value: network-resources-injector-secret - name: METRICS_EXPORTER_IMAGE - value: registry.redhat.io/openshift4/ose-sriov-network-metrics-exporter-rhel9@sha256:4754024aba1f91186e0b2948c6e7354a2904f58b5b328d4b66396b2488b35ae3 + value: registry.redhat.io/openshift4/ose-sriov-network-metrics-exporter-rhel9@sha256:7039317cf59f96a4d1407066f0df8055efe128dc749738226ef8e3703939dd03 - name: METRICS_EXPORTER_KUBE_RBAC_PROXY_IMAGE - value: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:fdfc454254a63d317a01a4689e1856df23fd40b5dc955bd7ef65574817e874a7 + value: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:6b6c25b6849139cfe88b02df1a095fa0abbbaec9a987d20f75ca007c3cf4e2b7 - name: METRICS_EXPORTER_SECRET_NAME value: metrics-exporter-cert - name: METRICS_EXPORTER_PROMETHEUS_OPERATOR_ENABLED @@ -77,7 +77,7 @@ spec: value: 4.20.0 - name: CLUSTER_TYPE value: kubernetes - image: registry.redhat.io/openshift4/ose-sriov-network-rhel9-operator@sha256:5ac9b3127d3399051a84fc89796cd3c191c3a2982db2975962a82ff8b2fc205f + image: registry.redhat.io/openshift4/ose-sriov-network-rhel9-operator@sha256:34e14fe1807f52221d9194adee89b20cd99f8cc294f4635628e3b88f87cc5575 imagePullPolicy: IfNotPresent livenessProbe: httpGet: diff --git a/assets/optional/sriov/release-sriov-aarch64.json b/assets/optional/sriov/release-sriov-aarch64.json index 2b989aa37c..dcbaa11b97 100644 --- a/assets/optional/sriov/release-sriov-aarch64.json +++ b/assets/optional/sriov/release-sriov-aarch64.json @@ -1,17 +1,17 @@ { "release": { - "base": "4.20.0-202511102026" + "base": "4.20.0-202511182227" }, "images": { - "sriov-cni-image": "registry.redhat.io/openshift4/sriov-cni-rhel9@sha256:df980a59a7c2b522c489b848987055697efe5ff9adfa6d280c245b05eca86df0", - "sriov-device-plugin-image": "registry.redhat.io/openshift4/ose-sriov-network-device-plugin-rhel9@sha256:6b0bab13ff2c5152ce8730ab5d166d259aceb1319b5ec883706fb604b8744e74", - "network-resources-injector-image": "registry.redhat.io/openshift4/ose-sriov-dp-admission-controller-rhel9@sha256:523b049f9a55f15bf3bc683c06eda78e955dd4500d3edc15d99c66170f5c0d4c", - "sriov-network-config-daemon-image": "registry.redhat.io/openshift4/ose-sriov-network-config-daemon-rhel9@sha256:0cb0fdba5d99facde4cf0c7bb2b02e6d856a731c202dc26a4acae7469131bef5", - "sriov-network-webhook-image": "registry.redhat.io/openshift4/ose-sriov-network-webhook-rhel9@sha256:958f080590fff38909f309860f7387b7a5ee2b8de3a1c8d1a375f68fb5c0c350", - "sriov-infiniband-cni-image": "registry.redhat.io/openshift4/ose-sriov-infiniband-cni-rhel9@sha256:1d2afb78f381c55033ac92dce43f26767433e9f965b57f81b9d5d36c106cbf4e", - "rdma-cni-image": "registry.redhat.io/openshift4/ose-sriov-rdma-cni-rhel9@sha256:5b49ca4846aa187bb292c1b043975c5c4f821adccad243c1317b7b195ebd0f12", - "metrics-exporter-image": "registry.redhat.io/openshift4/ose-sriov-network-metrics-exporter-rhel9@sha256:4754024aba1f91186e0b2948c6e7354a2904f58b5b328d4b66396b2488b35ae3", - "metrics-exporter-kube-rbac-proxy-image": "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:fdfc454254a63d317a01a4689e1856df23fd40b5dc955bd7ef65574817e874a7", - "sriov-network-operator": "registry.redhat.io/openshift4/ose-sriov-network-rhel9-operator@sha256:5ac9b3127d3399051a84fc89796cd3c191c3a2982db2975962a82ff8b2fc205f" + "sriov-cni-image": "registry.redhat.io/openshift4/sriov-cni-rhel9@sha256:9a6e16e1673460f3b2691301e5abfd37e400e8ff51b185700f19aa06aa069324", + "sriov-device-plugin-image": "registry.redhat.io/openshift4/ose-sriov-network-device-plugin-rhel9@sha256:d5480310e39b86502d06d66a44aabd7490527b66a09c9c75276a6e9b0b1973cb", + "network-resources-injector-image": "registry.redhat.io/openshift4/ose-sriov-dp-admission-controller-rhel9@sha256:cab4774be962f72ec02bafe6d35e7c511b2455b9706e97f7b64654fe8fc2a675", + "sriov-network-config-daemon-image": "registry.redhat.io/openshift4/ose-sriov-network-config-daemon-rhel9@sha256:17b027462b3de2db248afc8cf75b41c82bdeb76ea714a3cba0e650cfac1da464", + "sriov-network-webhook-image": "registry.redhat.io/openshift4/ose-sriov-network-webhook-rhel9@sha256:22abe1264a10e4dcbd16a5fb84d1a068a5e785c832f1b06f95863bf74870a5bf", + "sriov-infiniband-cni-image": "registry.redhat.io/openshift4/ose-sriov-infiniband-cni-rhel9@sha256:20efb10a67ec672d5380bc003986131c0384a3e5964009ca85133dba4cf34f66", + "rdma-cni-image": "registry.redhat.io/openshift4/ose-sriov-rdma-cni-rhel9@sha256:a4fa8b599fbfc2e32e055b8ff9f3d320c9567798ec99fa5ae28d0005bdff36b3", + "metrics-exporter-image": "registry.redhat.io/openshift4/ose-sriov-network-metrics-exporter-rhel9@sha256:7039317cf59f96a4d1407066f0df8055efe128dc749738226ef8e3703939dd03", + "metrics-exporter-kube-rbac-proxy-image": "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:6b6c25b6849139cfe88b02df1a095fa0abbbaec9a987d20f75ca007c3cf4e2b7", + "sriov-network-operator": "registry.redhat.io/openshift4/ose-sriov-network-rhel9-operator@sha256:34e14fe1807f52221d9194adee89b20cd99f8cc294f4635628e3b88f87cc5575" } } diff --git a/assets/optional/sriov/release-sriov-x86_64.json b/assets/optional/sriov/release-sriov-x86_64.json index 2b989aa37c..dcbaa11b97 100644 --- a/assets/optional/sriov/release-sriov-x86_64.json +++ b/assets/optional/sriov/release-sriov-x86_64.json @@ -1,17 +1,17 @@ { "release": { - "base": "4.20.0-202511102026" + "base": "4.20.0-202511182227" }, "images": { - "sriov-cni-image": "registry.redhat.io/openshift4/sriov-cni-rhel9@sha256:df980a59a7c2b522c489b848987055697efe5ff9adfa6d280c245b05eca86df0", - "sriov-device-plugin-image": "registry.redhat.io/openshift4/ose-sriov-network-device-plugin-rhel9@sha256:6b0bab13ff2c5152ce8730ab5d166d259aceb1319b5ec883706fb604b8744e74", - "network-resources-injector-image": "registry.redhat.io/openshift4/ose-sriov-dp-admission-controller-rhel9@sha256:523b049f9a55f15bf3bc683c06eda78e955dd4500d3edc15d99c66170f5c0d4c", - "sriov-network-config-daemon-image": "registry.redhat.io/openshift4/ose-sriov-network-config-daemon-rhel9@sha256:0cb0fdba5d99facde4cf0c7bb2b02e6d856a731c202dc26a4acae7469131bef5", - "sriov-network-webhook-image": "registry.redhat.io/openshift4/ose-sriov-network-webhook-rhel9@sha256:958f080590fff38909f309860f7387b7a5ee2b8de3a1c8d1a375f68fb5c0c350", - "sriov-infiniband-cni-image": "registry.redhat.io/openshift4/ose-sriov-infiniband-cni-rhel9@sha256:1d2afb78f381c55033ac92dce43f26767433e9f965b57f81b9d5d36c106cbf4e", - "rdma-cni-image": "registry.redhat.io/openshift4/ose-sriov-rdma-cni-rhel9@sha256:5b49ca4846aa187bb292c1b043975c5c4f821adccad243c1317b7b195ebd0f12", - "metrics-exporter-image": "registry.redhat.io/openshift4/ose-sriov-network-metrics-exporter-rhel9@sha256:4754024aba1f91186e0b2948c6e7354a2904f58b5b328d4b66396b2488b35ae3", - "metrics-exporter-kube-rbac-proxy-image": "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:fdfc454254a63d317a01a4689e1856df23fd40b5dc955bd7ef65574817e874a7", - "sriov-network-operator": "registry.redhat.io/openshift4/ose-sriov-network-rhel9-operator@sha256:5ac9b3127d3399051a84fc89796cd3c191c3a2982db2975962a82ff8b2fc205f" + "sriov-cni-image": "registry.redhat.io/openshift4/sriov-cni-rhel9@sha256:9a6e16e1673460f3b2691301e5abfd37e400e8ff51b185700f19aa06aa069324", + "sriov-device-plugin-image": "registry.redhat.io/openshift4/ose-sriov-network-device-plugin-rhel9@sha256:d5480310e39b86502d06d66a44aabd7490527b66a09c9c75276a6e9b0b1973cb", + "network-resources-injector-image": "registry.redhat.io/openshift4/ose-sriov-dp-admission-controller-rhel9@sha256:cab4774be962f72ec02bafe6d35e7c511b2455b9706e97f7b64654fe8fc2a675", + "sriov-network-config-daemon-image": "registry.redhat.io/openshift4/ose-sriov-network-config-daemon-rhel9@sha256:17b027462b3de2db248afc8cf75b41c82bdeb76ea714a3cba0e650cfac1da464", + "sriov-network-webhook-image": "registry.redhat.io/openshift4/ose-sriov-network-webhook-rhel9@sha256:22abe1264a10e4dcbd16a5fb84d1a068a5e785c832f1b06f95863bf74870a5bf", + "sriov-infiniband-cni-image": "registry.redhat.io/openshift4/ose-sriov-infiniband-cni-rhel9@sha256:20efb10a67ec672d5380bc003986131c0384a3e5964009ca85133dba4cf34f66", + "rdma-cni-image": "registry.redhat.io/openshift4/ose-sriov-rdma-cni-rhel9@sha256:a4fa8b599fbfc2e32e055b8ff9f3d320c9567798ec99fa5ae28d0005bdff36b3", + "metrics-exporter-image": "registry.redhat.io/openshift4/ose-sriov-network-metrics-exporter-rhel9@sha256:7039317cf59f96a4d1407066f0df8055efe128dc749738226ef8e3703939dd03", + "metrics-exporter-kube-rbac-proxy-image": "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:6b6c25b6849139cfe88b02df1a095fa0abbbaec9a987d20f75ca007c3cf4e2b7", + "sriov-network-operator": "registry.redhat.io/openshift4/ose-sriov-network-rhel9-operator@sha256:34e14fe1807f52221d9194adee89b20cd99f8cc294f4635628e3b88f87cc5575" } } diff --git a/assets/release/release-aarch64.json b/assets/release/release-aarch64.json index 42de2b9e18..4ea05bacbc 100644 --- a/assets/release/release-aarch64.json +++ b/assets/release/release-aarch64.json @@ -1,16 +1,16 @@ { "release": { - "base": "4.21.0-0.nightly-arm64-2025-11-20-233918" + "base": "4.21.0-0.nightly-arm64-2025-11-28-004554" }, "images": { - "cli": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:660fda962e61f8f8e34b9167ad17203d0268cc55bec1ba45637b52bfbc5afbf7", - "coredns": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a3d38867a1f877d1e92cd98148e4aae79d76aa27cf539a6c3e67d33b208833e3", - "haproxy-router": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d345fd41a51399c55e459e75f159ebddd77da60248de99b47da0a49bb0cceb23", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ceb5e5aaeea3132fe915939ad18c70d5b39e76f81c4e3f3dbb7c62f107a687f6", + "cli": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b3252c084c7335078463bb7e7aebd2f457a83bb3c1fddbd9fe9c5bdbcdb6357e", + "coredns": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3d99eb4f86c8c2a4a7bc53de6eecd6d3348ae590ccf00d8a64bb598ba71aea75", + "haproxy-router": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a7293b908d8eba743cfdad34f4937f19170b17460da2f7de5e5eabd2100d13be", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d4ba33fcc9731eccfbdedcf77a4a53ccff1883d93ce3a3ab6c0014eb26a30e09", "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9a9e1e2dff0b52b366036024ecaff25903baab14b03a6b9daba74f6dc9b66441", - "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d159bcafff0cf386cb11935a05c1fa42fcc3dd9e5d2b845fed45752ce3420ac0", - "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6d9f38b175a50e44beb5b3632640c6794f4b3c819459366dd3748d9bec1e34c0", + "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:abf84909350a6b52e1f9ce0a232d47ba3f4e54d5f1897d5f90a537af7b67b36a", + "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:adc0a0fe16045396cb9917a6d0a918101c212e0d0089c64a788d4edfd8701b36", "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:3766640b19c336b443619ecdb35f36b479c79ea71b21de97febf024a5eaf6c84", - "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:59e08f18fec3987117dc905800aa891566a1578b53e07a34695914f9dd2ef9c9" + "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:dea2c682a5721339508958b1066022da7a359256afe4562b86d9bc861fd87ae7" } } diff --git a/assets/release/release-x86_64.json b/assets/release/release-x86_64.json index 5c0fa2a7d7..3a33f0faed 100644 --- a/assets/release/release-x86_64.json +++ b/assets/release/release-x86_64.json @@ -1,16 +1,16 @@ { "release": { - "base": "4.21.0-0.nightly-2025-11-15-144034" + "base": "4.21.0-0.nightly-2025-11-22-193140" }, "images": { - "cli": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:cf45c7028048cedcf52104fe1327a984ab43a6fafe5a824a53e8beecd9d600a2", - "coredns": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c76fe2bc1ce513d359fa7bbee10d2588b562e061005e56218a0fc22ca0d84c88", - "haproxy-router": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:b4528df72af85ac2f8c89c2b9436bb159b23188babf833e1f3dad8d99db9206f", - "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d192db5dc0d82363d029267ae9d8084689ae6a6983e4cae5defa26bf39612c12", + "cli": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:fe0eaf3c9dd4275c3cde5f06afa69f9af87a8c85d315fe2ed896937efeb7b55c", + "coredns": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:3ee60b87360084ef5ebbc35b18204bd3dea2a3a99f90e2ddbf54962a6df5c4d7", + "haproxy-router": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c95713a879ddb263f1b061bc6492926ec6434c96501bc59740d585a01cfb5097", + "kube-rbac-proxy": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c6acf77d3f17317bc2a9a2819e26efcc6bc6125453d3893f9c54c0c2a46b54c5", "ovn-kubernetes-microshift": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ad19c1f0010ebcda83c0f0e9f0b2618f0ccd4353388c8ce668c036a153dc70ab", - "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6499a5b1ee439bc35a56c1064c92369131f20df24505be5f7870a26b7186d6fd", - "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1cd4f0bc9e241b07d83f9123a9901952e642b8f43ed524eccd9a71eee82959d1", + "pod": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a0a33d3936721b7272b752563fdc38d3cf3624aa39d15b4bc942dd8fc981f4f6", + "service-ca-operator": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:1619a755eb6bb9ab95209308c9895d4979deb6f322f1843190b1bc23a033ba62", "lvms_operator": "registry.redhat.io/lvms4/lvms-rhel9-operator@sha256:58804d8baf922927b66cec9424d431a3bdb341d207024ce40cc8f0123bac03ee", - "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:19adb2463500ef669a495e36557adf02c7c8d4525f82cf5a5efe157adbc7d743" + "csi-snapshot-controller": "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6b5d9e617da4d73ff0c100c0ac684d210fc64d23a8b6a21a3fdbfe1430a717e2" } } diff --git a/dashboards/grafana-dashboard-microshift-telemetry.configmap.yaml b/dashboards/grafana-dashboard-microshift-telemetry.configmap.yaml index c22dadc574..a8be47b6c6 100644 --- a/dashboards/grafana-dashboard-microshift-telemetry.configmap.yaml +++ b/dashboards/grafana-dashboard-microshift-telemetry.configmap.yaml @@ -69,6 +69,614 @@ data: "title": "Production clusters", "type": "row" }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Growth" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 7 + }, + "id": 49, + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^Growth$/", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n sum(\n max by (_id) (\n max_over_time(cluster:capacity_cpu_cores:sum{label_beta_kubernetes_io_instance_type=\"rhde\"}[$offline_threshold:5m])\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d]\n)", + "legendFormat": "Current", + "range": true, + "refId": "Current" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n sum(\n max by (_id) (\n max_over_time(cluster:capacity_cpu_cores:sum{label_beta_kubernetes_io_instance_type=\"rhde\"}[$offline_threshold:5m])\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d] offset 30d\n)", + "hide": false, + "instant": false, + "legendFormat": "Past", + "range": true, + "refId": "Past" + } + ], + "title": "Cluster growth over last month", + "transformations": [ + { + "id": "calculateField", + "options": { + "alias": "Difference", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Current" + } + }, + "operator": "-", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Growth", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Difference" + } + }, + "operator": "/", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Growth" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 6, + "y": 7 + }, + "id": 50, + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^Growth$/", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n sum(\n max by (_id) (\n max_over_time(cluster:capacity_cpu_cores:sum{label_beta_kubernetes_io_instance_type=\"rhde\"}[$offline_threshold:5m])\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d]\n)", + "legendFormat": "Current", + "range": true, + "refId": "Current" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n sum(\n max by (_id) (\n max_over_time(cluster:capacity_cpu_cores:sum{label_beta_kubernetes_io_instance_type=\"rhde\"}[$offline_threshold:5m])\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d] offset 90d\n)", + "hide": false, + "instant": false, + "legendFormat": "Past", + "range": true, + "refId": "Past" + } + ], + "title": "Cluster growth over last 3 months", + "transformations": [ + { + "id": "calculateField", + "options": { + "alias": "Difference", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Current" + } + }, + "operator": "-", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Growth", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Difference" + } + }, + "operator": "/", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Growth" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 12, + "y": 7 + }, + "id": 45, + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^Growth$/", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n count (\n max by (_id, version) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d]\n)", + "legendFormat": "Current", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n count (\n max by (_id, version) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d] offset 30d\n)", + "hide": false, + "instant": false, + "legendFormat": "Past", + "range": true, + "refId": "B" + } + ], + "title": "CPU growth over last month", + "transformations": [ + { + "id": "calculateField", + "options": { + "alias": "Difference", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Current" + } + }, + "operator": "-", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Growth", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Difference" + } + }, + "operator": "/", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "mappings": [ + { + "options": { + "match": "null", + "result": { + "text": "N/A" + } + }, + "type": "special" + } + ], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Growth" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 18, + "y": 7 + }, + "id": 51, + "maxDataPoints": 100, + "options": { + "colorMode": "none", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^Growth$/", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.3", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n count (\n max by (_id, version) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d]\n)", + "legendFormat": "Current", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "avg_over_time(\n (\n count (\n max by (_id, version) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n and on(_id)\n (\n max by (_id) (\n count_over_time(microshift_version[$offline_threshold]) > 0\n )\n unless on (_id)\n (\n (\n max by(_id) (max_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n -\n min by(_id) (min_over_time(timestamp(microshift_version)[$offline_threshold:5m]))\n ) < $short_lived_threshold\n )\n )\n )\n )\n [14d:2d] offset 90d\n)", + "hide": false, + "instant": false, + "legendFormat": "Past", + "range": true, + "refId": "B" + } + ], + "title": "CPU growth over last 3 months", + "transformations": [ + { + "id": "calculateField", + "options": { + "alias": "Difference", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Current" + } + }, + "operator": "-", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Growth", + "binary": { + "left": { + "matcher": { + "id": "byName", + "options": "Difference" + } + }, + "operator": "/", + "right": { + "matcher": { + "id": "byName", + "options": "Past" + } + } + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + } + ], + "type": "stat" + }, { "datasource": { "type": "prometheus", @@ -107,7 +715,7 @@ data: "h": 7, "w": 5, "x": 0, - "y": 7 + "y": 12 }, "id": 30, "maxDataPoints": 100, @@ -222,7 +830,7 @@ data: "h": 7, "w": 6, "x": 5, - "y": 7 + "y": 12 }, "id": 31, "options": { @@ -332,7 +940,7 @@ data: "h": 7, "w": 6, "x": 11, - "y": 7 + "y": 12 }, "id": 32, "options": { @@ -501,7 +1109,7 @@ data: "h": 14, "w": 7, "x": 17, - "y": 7 + "y": 12 }, "id": 33, "options": { @@ -633,7 +1241,7 @@ data: "h": 7, "w": 5, "x": 0, - "y": 14 + "y": 19 }, "id": 34, "maxDataPoints": 100, @@ -748,7 +1356,7 @@ data: "h": 7, "w": 6, "x": 5, - "y": 14 + "y": 19 }, "id": 35, "options": { @@ -846,7 +1454,7 @@ data: "h": 7, "w": 6, "x": 11, - "y": 14 + "y": 19 }, "id": 36, "options": { @@ -906,7 +1514,7 @@ data: "h": 7, "w": 5, "x": 0, - "y": 21 + "y": 26 }, "id": 43, "options": { @@ -1010,7 +1618,7 @@ data: "h": 7, "w": 12, "x": 5, - "y": 21 + "y": 26 }, "id": 39, "options": { @@ -1070,7 +1678,7 @@ data: "h": 14, "w": 7, "x": 17, - "y": 21 + "y": 26 }, "id": 37, "options": { @@ -1136,7 +1744,7 @@ data: "h": 7, "w": 5, "x": 0, - "y": 28 + "y": 33 }, "id": 44, "options": { @@ -1242,7 +1850,7 @@ data: "h": 7, "w": 12, "x": 5, - "y": 28 + "y": 33 }, "id": 40, "options": { @@ -1282,7 +1890,7 @@ data: "h": 1, "w": 24, "x": 0, - "y": 35 + "y": 40 }, "id": 24, "panels": [], @@ -1327,7 +1935,7 @@ data: "h": 8, "w": 6, "x": 0, - "y": 36 + "y": 41 }, "id": 38, "maxDataPoints": 100, @@ -1431,7 +2039,7 @@ data: "h": 8, "w": 15, "x": 6, - "y": 36 + "y": 41 }, "id": 42, "options": { @@ -1586,5 +2194,5 @@ data: "timezone": "", "title": "MicroShift Telemetry", "uid": "sK7hN2pXf", - "version": 2 + "version": 3 } diff --git a/deps/github.com/openshift/kubernetes/test/e2e/storage/csimock/mutable_csinode_allocatable.go b/deps/github.com/openshift/kubernetes/test/e2e/storage/csimock/mutable_csinode_allocatable.go index eccdcdb419..179d2eb2ce 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/storage/csimock/mutable_csinode_allocatable.go +++ b/deps/github.com/openshift/kubernetes/test/e2e/storage/csimock/mutable_csinode_allocatable.go @@ -18,7 +18,6 @@ package csimock import ( "context" - "encoding/json" "fmt" "strings" "sync/atomic" @@ -30,17 +29,12 @@ import ( "github.com/onsi/ginkgo/v2" - jsonpatch "gopkg.in/evanphx/json-patch.v4" - storagev1 "k8s.io/api/storage/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/test/e2e/framework" e2epod "k8s.io/kubernetes/test/e2e/framework/pod" - e2evolume "k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/storage/drivers" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" "k8s.io/kubernetes/test/e2e/storage/utils" @@ -145,9 +139,10 @@ var _ = utils.SIGDescribe("MutableCSINodeAllocatableCount", framework.WithFeatur } opts := drivers.CSIMockDriverOpts{ - Embedded: true, - RegisterDriver: true, - Hooks: hook, + Embedded: true, + EnableMutableCSINodeAllocatableCount: true, + RegisterDriver: true, + Hooks: hook, } driver = drivers.InitMockCSIDriver(opts) cfg = driver.PrepareTest(ctx, f) @@ -173,45 +168,13 @@ var _ = utils.SIGDescribe("MutableCSINodeAllocatableCount", framework.WithFeatur }) f.It("should transition pod to failed state when attachment limit exceeded", func(ctx context.Context) { - _, claim, pod := m.createPod(ctx, pvcReference) + _, _, pod := m.createPod(ctx, pvcReference) if pod == nil { return } - ginkgo.By("Checking if VolumeAttachment was created for the pod") - testConfig := storageframework.ConvertTestConfig(m.config) - attachmentName := e2evolume.GetVolumeAttachmentName(ctx, m.cs, testConfig, m.provisioner, claim.Name, claim.Namespace) - - var va *storagev1.VolumeAttachment - err := wait.PollUntilContextTimeout(ctx, framework.Poll, 30*time.Second, true, func(ctx context.Context) (bool, error) { - var getErr error - va, getErr = m.cs.StorageV1().VolumeAttachments().Get(ctx, attachmentName, metav1.GetOptions{}) - if getErr != nil { - if apierrors.IsNotFound(getErr) { - return false, nil - } - return false, getErr - } - return true, nil - }) - framework.ExpectNoError(err, "VolumeAttachment not created") - - // Patch VolumeAttachment.Status.AttachError.ErrorCode with ResourceExhausted - clone := va.DeepCopy() - clone.Status.Attached = false - errorCode := int32(codes.ResourceExhausted) - clone.Status.AttachError = &storagev1.VolumeError{ - Message: "ResourceExhausted: attachment limit exceeded", - Time: metav1.Now(), - ErrorCode: &errorCode, - } - patch, err := createMergePatch(va, clone) - framework.ExpectNoError(err, "Failed to create merge patch") - _, err = m.cs.StorageV1().VolumeAttachments().Patch(ctx, attachmentName, types.MergePatchType, patch, metav1.PatchOptions{}, "status") - framework.ExpectNoError(err, "Failed to patch VolumeAttachment status") - ginkgo.By("Waiting for Pod to fail with VolumeAttachmentLimitExceeded") - err = e2epod.WaitForPodFailedReason(ctx, m.cs, pod, "VolumeAttachmentLimitExceeded", 4*time.Minute) + err := e2epod.WaitForPodFailedReason(ctx, m.cs, pod, "VolumeAttachmentLimitExceeded", 4*time.Minute) framework.ExpectNoError(err, "Pod did not fail with VolumeAttachmentLimitExceeded") }) }) @@ -245,19 +208,3 @@ func readCSINodeLimit(ctx context.Context, cs clientset.Interface, node, drv str } return 0, fmt.Errorf("driver %q not present on CSINode", drv) } - -func createMergePatch(original, new interface{}) ([]byte, error) { - pvByte, err := json.Marshal(original) - if err != nil { - return nil, err - } - cloneByte, err := json.Marshal(new) - if err != nil { - return nil, err - } - patch, err := jsonpatch.CreateMergePatch(pvByte, cloneByte) - if err != nil { - return nil, err - } - return patch, nil -} diff --git a/deps/github.com/openshift/kubernetes/test/e2e/storage/drivers/csi.go b/deps/github.com/openshift/kubernetes/test/e2e/storage/drivers/csi.go index 6ef88f955d..d1253ddb7a 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/storage/drivers/csi.go +++ b/deps/github.com/openshift/kubernetes/test/e2e/storage/drivers/csi.go @@ -337,25 +337,27 @@ func (h *hostpathCSIDriver) PrepareTest(ctx context.Context, f *framework.Framew // mockCSI type mockCSIDriver struct { - driverInfo storageframework.DriverInfo - manifests []string - podInfo *bool - storageCapacity *bool - attachable bool - attachLimit int - enableTopology bool - enableNodeExpansion bool - hooks Hooks - tokenRequests []storagev1.TokenRequest - requiresRepublish *bool - fsGroupPolicy *storagev1.FSGroupPolicy - enableVolumeMountGroup bool - enableNodeVolumeCondition bool - embedded bool - calls MockCSICalls - embeddedCSIDriver *mockdriver.CSIDriver - enableSELinuxMount *bool - disableControllerExpansion bool + driverInfo storageframework.DriverInfo + manifests []string + podInfo *bool + storageCapacity *bool + attachable bool + attachLimit int + enableTopology bool + enableNodeExpansion bool + hooks Hooks + tokenRequests []storagev1.TokenRequest + requiresRepublish *bool + serviceAccountTokenInSecrets *bool + fsGroupPolicy *storagev1.FSGroupPolicy + enableVolumeMountGroup bool + enableNodeVolumeCondition bool + embedded bool + calls MockCSICalls + embeddedCSIDriver *mockdriver.CSIDriver + enableSELinuxMount *bool + disableControllerExpansion bool + enableMutableCSINodeAllocatableCount bool // Additional values set during PrepareTest clientSet clientset.Interface @@ -389,22 +391,24 @@ type MockCSITestDriver interface { // CSIMockDriverOpts defines options used for csi driver type CSIMockDriverOpts struct { - RegisterDriver bool - DisableAttach bool - PodInfo *bool - StorageCapacity *bool - AttachLimit int - EnableTopology bool - EnableResizing bool - EnableNodeExpansion bool - DisableControllerExpansion bool - EnableSnapshot bool - EnableVolumeMountGroup bool - EnableNodeVolumeCondition bool - TokenRequests []storagev1.TokenRequest - RequiresRepublish *bool - FSGroupPolicy *storagev1.FSGroupPolicy - EnableSELinuxMount *bool + RegisterDriver bool + DisableAttach bool + PodInfo *bool + StorageCapacity *bool + AttachLimit int + EnableTopology bool + EnableResizing bool + EnableNodeExpansion bool + DisableControllerExpansion bool + EnableSnapshot bool + EnableVolumeMountGroup bool + EnableNodeVolumeCondition bool + TokenRequests []storagev1.TokenRequest + ServiceAccountTokenInSecrets *bool + RequiresRepublish *bool + FSGroupPolicy *storagev1.FSGroupPolicy + EnableSELinuxMount *bool + EnableMutableCSINodeAllocatableCount bool // Embedded defines whether the CSI mock driver runs // inside the cluster (false, the default) or just a proxy @@ -546,22 +550,24 @@ func InitMockCSIDriver(driverOpts CSIMockDriverOpts) MockCSITestDriver { storageframework.CapMultiplePVsSameID: true, }, }, - manifests: driverManifests, - podInfo: driverOpts.PodInfo, - storageCapacity: driverOpts.StorageCapacity, - enableTopology: driverOpts.EnableTopology, - attachable: !driverOpts.DisableAttach, - attachLimit: driverOpts.AttachLimit, - enableNodeExpansion: driverOpts.EnableNodeExpansion, - enableNodeVolumeCondition: driverOpts.EnableNodeVolumeCondition, - disableControllerExpansion: driverOpts.DisableControllerExpansion, - tokenRequests: driverOpts.TokenRequests, - requiresRepublish: driverOpts.RequiresRepublish, - fsGroupPolicy: driverOpts.FSGroupPolicy, - enableVolumeMountGroup: driverOpts.EnableVolumeMountGroup, - enableSELinuxMount: driverOpts.EnableSELinuxMount, - embedded: driverOpts.Embedded, - hooks: driverOpts.Hooks, + manifests: driverManifests, + podInfo: driverOpts.PodInfo, + storageCapacity: driverOpts.StorageCapacity, + enableTopology: driverOpts.EnableTopology, + attachable: !driverOpts.DisableAttach, + attachLimit: driverOpts.AttachLimit, + enableNodeExpansion: driverOpts.EnableNodeExpansion, + enableNodeVolumeCondition: driverOpts.EnableNodeVolumeCondition, + disableControllerExpansion: driverOpts.DisableControllerExpansion, + tokenRequests: driverOpts.TokenRequests, + requiresRepublish: driverOpts.RequiresRepublish, + serviceAccountTokenInSecrets: driverOpts.ServiceAccountTokenInSecrets, + fsGroupPolicy: driverOpts.FSGroupPolicy, + enableVolumeMountGroup: driverOpts.EnableVolumeMountGroup, + enableSELinuxMount: driverOpts.EnableSELinuxMount, + enableMutableCSINodeAllocatableCount: driverOpts.EnableMutableCSINodeAllocatableCount, + embedded: driverOpts.Embedded, + hooks: driverOpts.Hooks, } } @@ -717,6 +723,9 @@ func (m *mockCSIDriver) PrepareTest(ctx context.Context, f *framework.Framework) SELinuxMount: m.enableSELinuxMount, Features: map[string][]string{}, } + if m.enableMutableCSINodeAllocatableCount { + o.Features["csi-attacher"] = []string{"MutableCSINodeAllocatableCount=true"} + } err = utils.CreateFromManifests(ctx, f, m.driverNamespace, func(item interface{}) error { if err := utils.PatchCSIDeployment(config.Framework, o, item); err != nil { diff --git a/deps/github.com/openshift/kubernetes/test/e2e/storage/openshift_csi_volumes.go b/deps/github.com/openshift/kubernetes/test/e2e/storage/openshift_csi_volumes.go index a4f5cadb50..4ebc74be6e 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/storage/openshift_csi_volumes.go +++ b/deps/github.com/openshift/kubernetes/test/e2e/storage/openshift_csi_volumes.go @@ -20,6 +20,7 @@ package storage import ( "k8s.io/kubernetes/test/e2e/framework" + "k8s.io/kubernetes/test/e2e/storage/drivers" storageframework "k8s.io/kubernetes/test/e2e/storage/framework" "k8s.io/kubernetes/test/e2e/storage/testsuites" "k8s.io/kubernetes/test/e2e/storage/utils" @@ -27,11 +28,7 @@ import ( // List of testDrivers to be executed in below loop var ocpCSITestDrivers = []func() storageframework.TestDriver{ - // STOR-2534: temporarily disable the volume group snapshot test driver - // for external-snapshotter rebase that changes the group snapshot API. - // VolumeGroupSnapshots and its API are a TechPreview in OCP, - // it can't affect any user. - // drivers.InitGroupSnapshotHostpathCSIDriver, + drivers.InitGroupSnapshotHostpathCSIDriver, } // This executes testSuites for csi volumes. diff --git a/deps/github.com/openshift/kubernetes/test/e2e/storage/testsuites/volume_group_snapshottable.go b/deps/github.com/openshift/kubernetes/test/e2e/storage/testsuites/volume_group_snapshottable.go index 0707f557bb..e823442a5c 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/storage/testsuites/volume_group_snapshottable.go +++ b/deps/github.com/openshift/kubernetes/test/e2e/storage/testsuites/volume_group_snapshottable.go @@ -185,17 +185,18 @@ func (s *VolumeGroupSnapshottableTestSuite) DefineTests(driver storageframework. volumeListMap := snapshot.VGSContent.Object["status"].(map[string]interface{}) err = framework.Gomega().Expect(volumeListMap).NotTo(gomega.BeNil()) framework.ExpectNoError(err, "failed to get volume snapshot list") - volumeSnapshotHandlePairList := volumeListMap["volumeSnapshotHandlePairList"].([]interface{}) - err = framework.Gomega().Expect(volumeSnapshotHandlePairList).NotTo(gomega.BeNil()) + volumeSnapshotInfoList := volumeListMap["volumeSnapshotInfoList"].([]interface{}) + err = framework.Gomega().Expect(volumeSnapshotInfoList).NotTo(gomega.BeNil()) framework.ExpectNoError(err, "failed to get volume snapshot list") - err = framework.Gomega().Expect(len(volumeSnapshotHandlePairList)).To(gomega.Equal(groupTest.numVolumes)) + err = framework.Gomega().Expect(len(volumeSnapshotInfoList)).To(gomega.Equal(groupTest.numVolumes)) framework.ExpectNoError(err, "failed to get volume snapshot list") claimSize := groupTest.volumeGroup[0][0].Pvc.Spec.Resources.Requests.Storage().String() - for _, volume := range volumeSnapshotHandlePairList { + for _, info := range volumeSnapshotInfoList { // Create a PVC from the snapshot - volumeHandle := volume.(map[string]interface{})["volumeHandle"].(string) + volumeHandle := info.(map[string]interface{})["volumeHandle"].(string) err = framework.Gomega().Expect(volumeHandle).NotTo(gomega.BeNil()) framework.ExpectNoError(err, "failed to get volume handle from volume") + uid := snapshot.VGS.Object["metadata"].(map[string]interface{})["uid"].(string) err = framework.Gomega().Expect(uid).NotTo(gomega.BeNil()) framework.ExpectNoError(err, "failed to get uuid from content") diff --git a/deps/github.com/openshift/kubernetes/test/e2e/storage/utils/volume_group_snapshot.go b/deps/github.com/openshift/kubernetes/test/e2e/storage/utils/volume_group_snapshot.go index b5515e8792..a3ed602030 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/storage/utils/volume_group_snapshot.go +++ b/deps/github.com/openshift/kubernetes/test/e2e/storage/utils/volume_group_snapshot.go @@ -33,16 +33,16 @@ const ( // VolumeGroupSnapshot is the group snapshot api VolumeGroupSnapshotAPIGroup = "groupsnapshot.storage.k8s.io" // VolumeGroupSnapshotAPIVersion is the group snapshot api version - VolumeGroupSnapshotAPIVersion = "groupsnapshot.storage.k8s.io/v1beta1" + VolumeGroupSnapshotAPIVersion = "groupsnapshot.storage.k8s.io/v1beta2" ) var ( // VolumeGroupSnapshotGVR is GroupVersionResource for volumegroupsnapshots - VolumeGroupSnapshotGVR = schema.GroupVersionResource{Group: VolumeGroupSnapshotAPIGroup, Version: "v1beta1", Resource: "volumegroupsnapshots"} + VolumeGroupSnapshotGVR = schema.GroupVersionResource{Group: VolumeGroupSnapshotAPIGroup, Version: "v1beta2", Resource: "volumegroupsnapshots"} // VolumeGroupSnapshotClassGVR is GroupVersionResource for volumegroupsnapshotsclasses - VolumeGroupSnapshotClassGVR = schema.GroupVersionResource{Group: VolumeGroupSnapshotAPIGroup, Version: "v1beta1", Resource: "volumegroupsnapshotclasses"} - VolumeGroupSnapshotContentGVR = schema.GroupVersionResource{Group: VolumeGroupSnapshotAPIGroup, Version: "v1beta1", Resource: "volumegroupsnapshotcontents"} + VolumeGroupSnapshotClassGVR = schema.GroupVersionResource{Group: VolumeGroupSnapshotAPIGroup, Version: "v1beta2", Resource: "volumegroupsnapshotclasses"} + VolumeGroupSnapshotContentGVR = schema.GroupVersionResource{Group: VolumeGroupSnapshotAPIGroup, Version: "v1beta2", Resource: "volumegroupsnapshotcontents"} ) // WaitForVolumeGroupSnapshotReady waits for a VolumeGroupSnapshot to be ready to use or until timeout occurs, whichever comes first. diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml index a06c328d46..7b996dd9c7 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-attacher/rbac.yaml @@ -1,5 +1,5 @@ -# Do not edit, downloaded from https://github.com/kubernetes-csi/external-attacher/raw/v4.6.1/deploy/kubernetes//rbac.yaml -# for csi-driver-host-path release-1.14 +# Do not edit, downloaded from https://github.com/kubernetes-csi/external-attacher/raw/v4.10.0/deploy/kubernetes//rbac.yaml +# for csi-driver-host-path master # by ./update-hostpath.sh # # This YAML file contains all RBAC objects that are necessary to run external diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-health-monitor/external-health-monitor-controller/rbac.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-health-monitor/external-health-monitor-controller/rbac.yaml index 9154a0e0a5..8d91a016fa 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-health-monitor/external-health-monitor-controller/rbac.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-health-monitor/external-health-monitor-controller/rbac.yaml @@ -1,5 +1,5 @@ -# Do not edit, downloaded from https://github.com/kubernetes-csi/external-health-monitor/raw/v0.12.1/deploy/kubernetes/external-health-monitor-controller/rbac.yaml -# for csi-driver-host-path release-1.14 +# Do not edit, downloaded from https://github.com/kubernetes-csi/external-health-monitor/raw/v0.16.0/deploy/kubernetes/external-health-monitor-controller/rbac.yaml +# for csi-driver-host-path master # by ./update-hostpath.sh # # This YAML file contains all RBAC objects that are necessary to run external diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml index d0811b00aa..06bc4a3c71 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-provisioner/rbac.yaml @@ -1,5 +1,5 @@ -# Do not edit, downloaded from https://github.com/kubernetes-csi/external-provisioner/raw/v5.0.1/deploy/kubernetes//rbac.yaml -# for csi-driver-host-path release-1.14 +# Do not edit, downloaded from https://github.com/kubernetes-csi/external-provisioner/raw/v6.0.0/deploy/kubernetes//rbac.yaml +# for csi-driver-host-path master # by ./update-hostpath.sh # # This YAML file contains all RBAC objects that are necessary to run external diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml index afefe5c902..0d051eb765 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-resizer/rbac.yaml @@ -1,5 +1,5 @@ -# Do not edit, downloaded from https://github.com/kubernetes-csi/external-resizer/raw/v1.11.1/deploy/kubernetes//rbac.yaml -# for csi-driver-host-path release-1.14 +# Do not edit, downloaded from https://github.com/kubernetes-csi/external-resizer/raw/v2.0.0/deploy/kubernetes//rbac.yaml +# for csi-driver-host-path master # by ./update-hostpath.sh # # This YAML file contains all RBAC objects that are necessary to run external @@ -46,7 +46,6 @@ rules: - apiGroups: [""] resources: ["events"] verbs: ["list", "watch", "create", "update", "patch"] - # only required if enabling the alpha volume modify feature - apiGroups: ["storage.k8s.io"] resources: ["volumeattributesclasses"] verbs: ["get", "list", "watch"] diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/csi-snapshotter/rbac-csi-snapshotter.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/csi-snapshotter/rbac-csi-snapshotter.yaml index b02de9fdfe..3fcb9f541f 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/csi-snapshotter/rbac-csi-snapshotter.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/csi-snapshotter/rbac-csi-snapshotter.yaml @@ -1,5 +1,5 @@ -# Do not edit, downloaded from https://github.com/kubernetes-csi/external-snapshotter/raw/v8.0.1/deploy/kubernetes/csi-snapshotter/rbac-csi-snapshotter.yaml -# for csi-driver-host-path release-1.14 +# Do not edit, downloaded from https://github.com/kubernetes-csi/external-snapshotter/raw/v8.4.0/deploy/kubernetes/csi-snapshotter/rbac-csi-snapshotter.yaml +# for csi-driver-host-path master # by ./update-hostpath.sh # # Together with the RBAC file for external-provisioner, this YAML file @@ -38,12 +38,9 @@ rules: - apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshotclasses"] verbs: ["get", "list", "watch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update", "patch", "create"] - apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshotcontents"] - verbs: ["get", "list", "watch", "update", "patch", "create"] + verbs: ["get", "list", "watch", "update", "patch"] - apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshotcontents/status"] verbs: ["update", "patch"] diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotclasses.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotclasses.yaml index e552f81b57..81299d5ecf 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotclasses.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotclasses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1150" + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1337" controller-gen.kubebuilder.io/version: v0.15.0 name: volumegroupsnapshotclasses.groupsnapshot.storage.k8s.io spec: @@ -31,6 +31,7 @@ spec: - jsonPath: .metadata.creationTimestamp name: Age type: date + deprecated: true name: v1beta1 schema: openAPIV3Schema: @@ -90,5 +91,88 @@ spec: - driver type: object served: true + storage: false + subresources: {} + - additionalPrinterColumns: + - jsonPath: .driver + name: Driver + type: string + - description: Determines whether a VolumeGroupSnapshotContent created through + the VolumeGroupSnapshotClass should be deleted when its bound VolumeGroupSnapshot + is deleted. + jsonPath: .deletionPolicy + name: DeletionPolicy + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: |- + VolumeGroupSnapshotClass specifies parameters that a underlying storage system + uses when creating a volume group snapshot. A specific VolumeGroupSnapshotClass + is used by specifying its name in a VolumeGroupSnapshot object. + VolumeGroupSnapshotClasses are non-namespaced. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + deletionPolicy: + description: |- + DeletionPolicy determines whether a VolumeGroupSnapshotContent created + through the VolumeGroupSnapshotClass should be deleted when its bound + VolumeGroupSnapshot is deleted. + Supported values are "Retain" and "Delete". + "Retain" means that the VolumeGroupSnapshotContent and its physical group + snapshot on underlying storage system are kept. + "Delete" means that the VolumeGroupSnapshotContent and its physical group + snapshot on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + x-kubernetes-validations: + - message: deletionPolicy is immutable once set + rule: self == oldSelf + driver: + description: |- + Driver is the name of the storage driver expected to handle this VolumeGroupSnapshotClass. + Required. + type: string + x-kubernetes-validations: + - message: driver is immutable once set + rule: self == oldSelf + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + parameters: + additionalProperties: + type: string + description: |- + Parameters is a key-value map with storage driver specific parameters for + creating group snapshots. + These values are opaque to Kubernetes and are passed directly to the driver. + type: object + x-kubernetes-validations: + - message: parameters are immutable once set + rule: self == oldSelf + required: + - deletionPolicy + - driver + type: object + served: true storage: true subresources: {} diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotcontents.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotcontents.yaml index a6d15d8adc..235198ac49 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotcontents.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshotcontents.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1150" + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1337" controller-gen.kubebuilder.io/version: v0.15.0 name: volumegroupsnapshotcontents.groupsnapshot.storage.k8s.io spec: @@ -17,6 +17,15 @@ spec: - vgscs singular: volumegroupsnapshotcontent scope: Cluster + conversion: + strategy: Webhook + webhook: + conversionReviewVersions: ["v1"] + clientConfig: + service: + namespace: default + name: snapshot-conversion-webhook-service + path: /convert versions: - additionalPrinterColumns: - description: Indicates if all the individual snapshots in the group are ready @@ -53,6 +62,7 @@ spec: - jsonPath: .metadata.creationTimestamp name: Age type: date + deprecated: true name: v1beta1 schema: openAPIV3Schema: @@ -319,6 +329,333 @@ spec: - spec type: object served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicates if all the individual snapshots in the group are ready + to be used to restore a group of volumes. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Determines whether this VolumeGroupSnapshotContent and its physical + group snapshot on the underlying storage system should be deleted when its + bound VolumeGroupSnapshot is deleted. + jsonPath: .spec.deletionPolicy + name: DeletionPolicy + type: string + - description: Name of the CSI driver used to create the physical group snapshot + on the underlying storage system. + jsonPath: .spec.driver + name: Driver + type: string + - description: Name of the VolumeGroupSnapshotClass from which this group snapshot + was (or will be) created. + jsonPath: .spec.volumeGroupSnapshotClassName + name: VolumeGroupSnapshotClass + type: string + - description: Namespace of the VolumeGroupSnapshot object to which this VolumeGroupSnapshotContent + object is bound. + jsonPath: .spec.volumeGroupSnapshotRef.namespace + name: VolumeGroupSnapshotNamespace + type: string + - description: Name of the VolumeGroupSnapshot object to which this VolumeGroupSnapshotContent + object is bound. + jsonPath: .spec.volumeGroupSnapshotRef.name + name: VolumeGroupSnapshot + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: |- + VolumeGroupSnapshotContent represents the actual "on-disk" group snapshot object + in the underlying storage system + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + Spec defines properties of a VolumeGroupSnapshotContent created by the underlying storage system. + Required. + properties: + deletionPolicy: + description: |- + DeletionPolicy determines whether this VolumeGroupSnapshotContent and the + physical group snapshot on the underlying storage system should be deleted + when the bound VolumeGroupSnapshot is deleted. + Supported values are "Retain" and "Delete". + "Retain" means that the VolumeGroupSnapshotContent and its physical group + snapshot on underlying storage system are kept. + "Delete" means that the VolumeGroupSnapshotContent and its physical group + snapshot on underlying storage system are deleted. + For dynamically provisioned group snapshots, this field will automatically + be filled in by the CSI snapshotter sidecar with the "DeletionPolicy" field + defined in the corresponding VolumeGroupSnapshotClass. + For pre-existing snapshots, users MUST specify this field when creating the + VolumeGroupSnapshotContent object. + Required. + enum: + - Delete + - Retain + type: string + driver: + description: |- + Driver is the name of the CSI driver used to create the physical group snapshot on + the underlying storage system. + This MUST be the same as the name returned by the CSI GetPluginName() call for + that driver. + Required. + type: string + x-kubernetes-validations: + - message: driver is immutable once set + rule: self == oldSelf + source: + description: |- + Source specifies whether the snapshot is (or should be) dynamically provisioned + or already exists, and just requires a Kubernetes object representation. + This field is immutable after creation. + Required. + properties: + groupSnapshotHandles: + description: |- + GroupSnapshotHandles specifies the CSI "group_snapshot_id" of a pre-existing + group snapshot and a list of CSI "snapshot_id" of pre-existing snapshots + on the underlying storage system for which a Kubernetes object + representation was (or should be) created. + This field is immutable. + properties: + volumeGroupSnapshotHandle: + description: |- + VolumeGroupSnapshotHandle specifies the CSI "group_snapshot_id" of a pre-existing + group snapshot on the underlying storage system for which a Kubernetes object + representation was (or should be) created. + This field is immutable. + Required. + type: string + volumeSnapshotHandles: + description: |- + VolumeSnapshotHandles is a list of CSI "snapshot_id" of pre-existing + snapshots on the underlying storage system for which Kubernetes objects + representation were (or should be) created. + This field is immutable. + Required. + items: + type: string + type: array + required: + - volumeGroupSnapshotHandle + - volumeSnapshotHandles + type: object + x-kubernetes-validations: + - message: groupSnapshotHandles is immutable + rule: self == oldSelf + volumeHandles: + description: |- + VolumeHandles is a list of volume handles on the backend to be snapshotted + together. It is specified for dynamic provisioning of the VolumeGroupSnapshot. + This field is immutable. + items: + type: string + type: array + x-kubernetes-validations: + - message: volumeHandles is immutable + rule: self == oldSelf + type: object + x-kubernetes-validations: + - message: volumeHandles is required once set + rule: '!has(oldSelf.volumeHandles) || has(self.volumeHandles)' + - message: groupSnapshotHandles is required once set + rule: '!has(oldSelf.groupSnapshotHandles) || has(self.groupSnapshotHandles)' + - message: exactly one of volumeHandles and groupSnapshotHandles must + be set + rule: (has(self.volumeHandles) && !has(self.groupSnapshotHandles)) + || (!has(self.volumeHandles) && has(self.groupSnapshotHandles)) + volumeGroupSnapshotClassName: + description: |- + VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass from + which this group snapshot was (or will be) created. + Note that after provisioning, the VolumeGroupSnapshotClass may be deleted or + recreated with different set of values, and as such, should not be referenced + post-snapshot creation. + For dynamic provisioning, this field must be set. + This field may be unset for pre-provisioned snapshots. + type: string + x-kubernetes-validations: + - message: volumeGroupSnapshotClassName is immutable once set + rule: self == oldSelf + volumeGroupSnapshotRef: + description: |- + VolumeGroupSnapshotRef specifies the VolumeGroupSnapshot object to which this + VolumeGroupSnapshotContent object is bound. + VolumeGroupSnapshot.Spec.VolumeGroupSnapshotContentName field must reference to + this VolumeGroupSnapshotContent's name for the bidirectional binding to be valid. + For a pre-existing VolumeGroupSnapshotContent object, name and namespace of the + VolumeGroupSnapshot object MUST be provided for binding to happen. + This field is immutable after creation. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. + type: string + kind: + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + name: + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string + namespace: + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ + type: string + resourceVersion: + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + type: string + uid: + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids + type: string + type: object + x-kubernetes-map-type: atomic + x-kubernetes-validations: + - message: both volumeGroupSnapshotRef.name and volumeGroupSnapshotRef.namespace + must be set + rule: has(self.name) && has(self.__namespace__) + - message: volumeGroupSnapshotRef.name and volumeGroupSnapshotRef.namespace + are immutable + rule: self.name == oldSelf.name && self.__namespace__ == oldSelf.__namespace__ + - message: volumeGroupSnapshotRef.uid is immutable once set + rule: '!has(oldSelf.uid) || (has(self.uid) && self.uid == oldSelf.uid)' + required: + - deletionPolicy + - driver + - source + - volumeGroupSnapshotRef + type: object + status: + description: status represents the current information of a group snapshot. + properties: + creationTime: + description: |- + CreationTime is the timestamp when the point-in-time group snapshot is taken + by the underlying storage system. + If not specified, it indicates the creation time is unknown. + If not specified, it means the readiness of a group snapshot is unknown. + This field is the source for the CreationTime field in VolumeGroupSnapshotStatus + format: date-time + type: string + error: + description: |- + Error is the last observed error during group snapshot creation, if any. + Upon success after retry, this error field will be cleared. + properties: + message: + description: |- + message is a string detailing the encountered error during snapshot + creation if specified. + NOTE: message may be logged, and it should not contain sensitive + information. + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: |- + ReadyToUse indicates if all the individual snapshots in the group are ready to be + used to restore a group of volumes. + ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. + type: boolean + volumeGroupSnapshotHandle: + description: |- + VolumeGroupSnapshotHandle is a unique id returned by the CSI driver + to identify the VolumeGroupSnapshot on the storage system. + If a storage system does not provide such an id, the + CSI driver can choose to return the VolumeGroupSnapshot name. + type: string + x-kubernetes-validations: + - message: volumeGroupSnapshotHandle is immutable once set + rule: self == oldSelf + volumeSnapshotInfoList: + description: |- + This field is introduced in v1beta2 + It is replacing VolumeSnapshotHandlePairList + VolumeSnapshotInfoList is a list of snapshot information returned by + by the CSI driver to identify snapshots on the storage system. + items: + description: |- + The VolumeSnapshotInfo struct is added in v1beta2 + VolumeSnapshotInfo contains information for a snapshot + properties: + creationTime: + description: |- + creationTime is the timestamp when the point-in-time snapshot is taken + by the underlying storage system. + format: int64 + type: integer + readyToUse: + description: ReadyToUse indicates if the snapshot is ready to + be used to restore a volume. + type: boolean + restoreSize: + description: |- + RestoreSize represents the minimum size of volume required to create a volume + from this snapshot. + format: int64 + type: integer + snapshotHandle: + description: SnapshotHandle is the CSI "snapshot_id" of this + snapshot on the underlying storage system. + type: string + volumeHandle: + description: |- + VolumeHandle specifies the CSI "volume_id" of the volume from which this snapshot + was taken from. + type: string + type: object + type: array + type: object + required: + - spec + type: object + served: true storage: true subresources: status: {} diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshots.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshots.yaml index 145d1211df..3f8c4909aa 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshots.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/groupsnapshot.storage.k8s.io_volumegroupsnapshots.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1150" + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/1337" controller-gen.kubebuilder.io/version: v0.15.0 name: volumegroupsnapshots.groupsnapshot.storage.k8s.io spec: @@ -43,6 +43,7 @@ spec: - jsonPath: .metadata.creationTimestamp name: Age type: date + deprecated: true name: v1beta1 schema: openAPIV3Schema: @@ -234,6 +235,226 @@ spec: - spec type: object served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicates if all the individual snapshots in the group are ready + to be used to restore a group of volumes. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: The name of the VolumeGroupSnapshotClass requested by the VolumeGroupSnapshot. + jsonPath: .spec.volumeGroupSnapshotClassName + name: VolumeGroupSnapshotClass + type: string + - description: Name of the VolumeGroupSnapshotContent object to which the VolumeGroupSnapshot + object intends to bind to. Please note that verification of binding actually + requires checking both VolumeGroupSnapshot and VolumeGroupSnapshotContent + to ensure both are pointing at each other. Binding MUST be verified prior + to usage of this object. + jsonPath: .status.boundVolumeGroupSnapshotContentName + name: VolumeGroupSnapshotContent + type: string + - description: Timestamp when the point-in-time group snapshot was taken by the + underlying storage system. + jsonPath: .status.creationTime + name: CreationTime + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta2 + schema: + openAPIV3Schema: + description: |- + VolumeGroupSnapshot is a user's request for creating either a point-in-time + group snapshot or binding to a pre-existing group snapshot. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + Spec defines the desired characteristics of a group snapshot requested by a user. + Required. + properties: + source: + description: |- + Source specifies where a group snapshot will be created from. + This field is immutable after creation. + Required. + properties: + selector: + description: |- + Selector is a label query over persistent volume claims that are to be + grouped together for snapshotting. + This labelSelector will be used to match the label added to a PVC. + If the label is added or removed to a volume after a group snapshot + is created, the existing group snapshots won't be modified. + Once a VolumeGroupSnapshotContent is created and the sidecar starts to process + it, the volume list will not change with retries. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + x-kubernetes-map-type: atomic + x-kubernetes-validations: + - message: selector is immutable + rule: self == oldSelf + volumeGroupSnapshotContentName: + description: |- + VolumeGroupSnapshotContentName specifies the name of a pre-existing VolumeGroupSnapshotContent + object representing an existing volume group snapshot. + This field should be set if the volume group snapshot already exists and + only needs a representation in Kubernetes. + This field is immutable. + type: string + x-kubernetes-validations: + - message: volumeGroupSnapshotContentName is immutable + rule: self == oldSelf + type: object + x-kubernetes-validations: + - message: selector is required once set + rule: '!has(oldSelf.selector) || has(self.selector)' + - message: volumeGroupSnapshotContentName is required once set + rule: '!has(oldSelf.volumeGroupSnapshotContentName) || has(self.volumeGroupSnapshotContentName)' + - message: exactly one of selector and volumeGroupSnapshotContentName + must be set + rule: (has(self.selector) && !has(self.volumeGroupSnapshotContentName)) + || (!has(self.selector) && has(self.volumeGroupSnapshotContentName)) + volumeGroupSnapshotClassName: + description: |- + VolumeGroupSnapshotClassName is the name of the VolumeGroupSnapshotClass + requested by the VolumeGroupSnapshot. + VolumeGroupSnapshotClassName may be left nil to indicate that the default + class will be used. + Empty string is not allowed for this field. + type: string + x-kubernetes-validations: + - message: volumeGroupSnapshotClassName must not be the empty string + when set + rule: size(self) > 0 + required: + - source + type: object + status: + description: |- + Status represents the current information of a group snapshot. + Consumers must verify binding between VolumeGroupSnapshot and + VolumeGroupSnapshotContent objects is successful (by validating that both + VolumeGroupSnapshot and VolumeGroupSnapshotContent point to each other) before + using this object. + properties: + boundVolumeGroupSnapshotContentName: + description: |- + BoundVolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent + object to which this VolumeGroupSnapshot object intends to bind to. + If not specified, it indicates that the VolumeGroupSnapshot object has not + been successfully bound to a VolumeGroupSnapshotContent object yet. + NOTE: To avoid possible security issues, consumers must verify binding between + VolumeGroupSnapshot and VolumeGroupSnapshotContent objects is successful + (by validating that both VolumeGroupSnapshot and VolumeGroupSnapshotContent + point at each other) before using this object. + type: string + x-kubernetes-validations: + - message: boundVolumeGroupSnapshotContentName is immutable once set + rule: self == oldSelf + creationTime: + description: |- + CreationTime is the timestamp when the point-in-time group snapshot is taken + by the underlying storage system. + If not specified, it may indicate that the creation time of the group snapshot + is unknown. + This field is updated based on the CreationTime field in VolumeGroupSnapshotContentStatus + format: date-time + type: string + error: + description: |- + Error is the last observed error during group snapshot creation, if any. + This field could be helpful to upper level controllers (i.e., application + controller) to decide whether they should continue on waiting for the group + snapshot to be created based on the type of error reported. + The snapshot controller will keep retrying when an error occurs during the + group snapshot creation. Upon success, this error field will be cleared. + properties: + message: + description: |- + message is a string detailing the encountered error during snapshot + creation if specified. + NOTE: message may be logged, and it should not contain sensitive + information. + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: |- + ReadyToUse indicates if all the individual snapshots in the group are ready + to be used to restore a group of volumes. + ReadyToUse becomes true when ReadyToUse of all individual snapshots become true. + If not specified, it means the readiness of a group snapshot is unknown. + type: boolean + type: object + required: + - spec + type: object + served: true storage: true subresources: status: {} diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/csi-hostpath-plugin.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/csi-hostpath-plugin.yaml index 35dc8c4b29..4bedcf6e3c 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/csi-hostpath-plugin.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/csi-hostpath-plugin.yaml @@ -354,7 +354,7 @@ spec: name: socket-dir - name: csi-snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v8.3.0 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.4.0 args: - -v=5 - --csi-address=/csi/csi.sock diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/run_group_snapshot_e2e.sh b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/run_group_snapshot_e2e.sh index f62b40d848..9791f9b070 100755 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/run_group_snapshot_e2e.sh +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/external-snapshotter/volume-group-snapshots/run_group_snapshot_e2e.sh @@ -266,13 +266,12 @@ run_tests() { export KUBE_CONTAINER_RUNTIME=remote export KUBE_CONTAINER_RUNTIME_ENDPOINT=unix:///run/containerd/containerd.sock export KUBE_CONTAINER_RUNTIME_NAME=containerd - export SNAPSHOTTER_VERSION="${SNAPSHOTTER_VERSION:-v8.3.0}" + export SNAPSHOTTER_VERSION="${SNAPSHOTTER_VERSION:-v8.4.0}" echo "SNAPSHOTTER_VERSION is $SNAPSHOTTER_VERSION" - # ginkgo can take forever to exit, so we run it in the background and save the - # PID, bash will not run traps while waiting on a process, but it will while - # running a builtin like `wait`, saving the PID also allows us to forward the - # interrupt - + + # Enable VolumeGroupSnapshot tests in csi-driver-hostpath + export CSI_PROW_ENABLE_GROUP_SNAPSHOT=true + kubectl apply -f ./cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml || exit 1 kubectl apply -f ./cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml || exit 1 kubectl apply -f ./cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml || exit 1 @@ -287,6 +286,10 @@ sed "s|image: registry.k8s.io/sig-storage/snapshot-controller:.*|image: registry kubectl apply -f - || exit 1 + # ginkgo can take forever to exit, so we run it in the background and save the + # PID, bash will not run traps while waiting on a process, but it will while + # running a builtin like `wait`, saving the PID also allows us to forward the + # interrupt ./hack/ginkgo-e2e.sh \ '--provider=skeleton' "--num-nodes=${NUM_NODES}" \ "--ginkgo.focus=${FOCUS}" "--ginkgo.skip=${SKIP}" "--ginkgo.label-filter=${LABEL_FILTER}" \ diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/README.md b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/README.md index 2a53faceae..6b662f547b 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/README.md +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/README.md @@ -1,4 +1,4 @@ The files in this directory are exact copies of "kubernetes-latest" in -https://github.com/kubernetes-csi/csi-driver-host-path/tree/release-1.14/deploy/ +https://github.com/kubernetes-csi/csi-driver-host-path/tree/master/deploy/ Do not edit manually. Run ./update-hostpath.sh to refresh the content. diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml index a5af9814a8..d2e97779bd 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml @@ -1,4 +1,4 @@ -# All of the individual sidecar RBAC roles get bound + # All of the individual sidecar RBAC roles get bound # to this account. kind: ServiceAccount apiVersion: v1 @@ -102,6 +102,24 @@ subjects: namespace: default --- apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + app.kubernetes.io/instance: hostpath.csi.k8s.io + app.kubernetes.io/part-of: csi-driver-host-path + app.kubernetes.io/name: csi-hostpathplugin + app.kubernetes.io/component: snapshot-metadata-cluster-role + name: csi-hostpathplugin-snapshot-metadata-cluster-role +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: external-snapshot-metadata-runner +subjects: +- kind: ServiceAccount + name: csi-hostpathplugin-sa + namespace: default +--- +apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: @@ -219,12 +237,13 @@ spec: serviceAccountName: csi-hostpathplugin-sa containers: - name: hostpath - image: registry.k8s.io/sig-storage/hostpathplugin:v1.16.1 + image: registry.k8s.io/sig-storage/hostpathplugin:v1.17.0 args: - "--drivername=hostpath.csi.k8s.io" - "--v=5" - "--endpoint=$(CSI_ENDPOINT)" - "--nodeid=$(KUBE_NODE_NAME)" + # end hostpath args env: - name: CSI_ENDPOINT value: unix:///csi/csi.sock @@ -262,7 +281,7 @@ spec: name: dev-dir - name: csi-external-health-monitor-controller - image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.12.1 + image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.16.0 args: - "--v=5" - "--csi-address=$(ADDRESS)" @@ -324,7 +343,7 @@ spec: name: socket-dir - name: csi-provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0 + image: registry.k8s.io/sig-storage/csi-provisioner:v6.0.0 args: - -v=5 - --csi-address=/csi/csi.sock @@ -340,7 +359,7 @@ spec: name: socket-dir - name: csi-resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.13.1 + image: registry.k8s.io/sig-storage/csi-resizer:v2.0.0 args: - -v=5 - -csi-address=/csi/csi.sock @@ -354,7 +373,7 @@ spec: name: socket-dir - name: csi-snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v8.3.0 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.4.0 args: - -v=5 - --csi-address=/csi/csi.sock @@ -367,6 +386,8 @@ spec: - mountPath: /csi name: socket-dir + # end csi containers + volumes: - hostPath: path: /var/lib/kubelet/plugins/csi-hostpath @@ -394,3 +415,4 @@ spec: path: /dev type: Directory name: dev-dir + # end csi volumes diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-testing.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-testing.yaml index 494f2aacc2..19c9888eec 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-testing.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-testing.yaml @@ -66,7 +66,7 @@ spec: topologyKey: kubernetes.io/hostname containers: - name: socat - image: registry.k8s.io/sig-storage/hostpathplugin:v1.16.1 + image: registry.k8s.io/sig-storage/hostpathplugin:v1.15.0 command: - socat args: diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml index 9716caaad8..f2f7850f08 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-attacher.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: csi-mock containers: - name: csi-attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.8.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.10.0 args: - --v=5 - --csi-address=$(ADDRESS) diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml index c2f7d07774..0133796e72 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-resizer.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: csi-mock containers: - name: csi-resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.13.1 + image: registry.k8s.io/sig-storage/csi-resizer:v2.0.0 args: - "--v=5" - "--csi-address=$(ADDRESS)" diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-snapshotter.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-snapshotter.yaml index cf5bbba29a..15c4bb5230 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-snapshotter.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver-snapshotter.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: csi-mock containers: - name: csi-snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v8.3.0 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.4.0 args: - "--v=5" - "--csi-address=$(ADDRESS)" diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml index 21b3d73398..fbac7b5fb3 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-driver.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: csi-mock containers: - name: csi-provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0 + image: registry.k8s.io/sig-storage/csi-provisioner:v6.0.0 args: - "--csi-address=$(ADDRESS)" # Topology support is needed for the pod rescheduling test @@ -34,7 +34,7 @@ spec: - mountPath: /csi name: socket-dir - name: driver-registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.15.0 args: - --v=5 - --csi-address=/csi/csi.sock @@ -53,7 +53,7 @@ spec: - mountPath: /registration name: registration-dir - name: mock - image: registry.k8s.io/sig-storage/hostpathplugin:v1.16.1 + image: registry.k8s.io/sig-storage/hostpathplugin:v1.17.0 args: - "--drivername=mock.storage.k8s.io" - "--nodeid=$(KUBE_NODE_NAME)" diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-proxy.yaml b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-proxy.yaml index a267f4f592..0530c9a472 100644 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-proxy.yaml +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/mock/csi-mock-proxy.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: csi-mock containers: - name: csi-provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v5.1.0 + image: registry.k8s.io/sig-storage/csi-provisioner:v6.0.0 args: - "--csi-address=$(ADDRESS)" # Topology support is needed for the pod rescheduling test @@ -35,7 +35,7 @@ spec: - mountPath: /csi name: socket-dir - name: driver-registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.13.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.15.0 args: - --v=5 - --csi-address=/csi/csi.sock @@ -53,7 +53,7 @@ spec: - mountPath: /registration name: registration-dir - name: mock - image: registry.k8s.io/sig-storage/hostpathplugin:v1.16.1 + image: registry.k8s.io/sig-storage/hostpathplugin:v1.17.0 args: - -v=5 - -nodeid=$(KUBE_NODE_NAME) diff --git a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/update-hostpath.sh b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/update-hostpath.sh index 122de0d18b..cf9ec057b4 100755 --- a/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/update-hostpath.sh +++ b/deps/github.com/openshift/kubernetes/test/e2e/testing-manifests/storage-csi/update-hostpath.sh @@ -37,7 +37,7 @@ set -xe cd "$(dirname "$0")" # Remove stale files. -rm -rf external-attacher external-provisioner external-resizer external-snapshotter external-health-monitor hostpath csi-driver-host-path +rm -rf external-attacher external-provisioner external-resizer external-snapshotter/csi-snapshotter external-health-monitor hostpath csi-driver-host-path # Check out desired release. git clone https://github.com/kubernetes-csi/csi-driver-host-path.git @@ -127,6 +127,10 @@ for image in $images; do path="csi-snapshotter" rbac="rbac-csi-snapshotter.yaml" ;; + external-snapshot-metadata) + # Another special case. There is no e2e test that needs the RBAC manifest + it's on an unusual place. + continue + ;; esac ;; esac @@ -137,5 +141,12 @@ done grep -r image: hostpath/hostpath/csi-hostpath-plugin.yaml | while read -r image; do version=$(echo "$image" | sed -e 's/.*:\(.*\)/\1/') image=$(echo "$image" | sed -e 's/.*image: \([^:]*\).*/\1/') - sed -i '' -e "s;$image:.*;$image:$version;" mock/*.yaml + + if sed --version >/dev/null 2>&1; then + # GNU sed, `-i ''` fails + sed -i -e "s;$image:.*;$image:$version;" mock/*.yaml + else + # BSD sed (macOS) + sed -i '' -e "s;$image:.*;$image:$version;" mock/*.yaml + fi done diff --git a/etcd/go.mod b/etcd/go.mod index a38cca3fb9..0399e1745b 100644 --- a/etcd/go.mod +++ b/etcd/go.mod @@ -11,8 +11,8 @@ replace ( ) require ( - github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 - github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c + github.com/openshift/api v0.0.0-20251117165054-348370f055bf + github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af github.com/spf13/cobra v1.9.1 go.etcd.io/etcd/server/v3 v3.6.4 k8s.io/apimachinery v1.34.1 @@ -37,7 +37,7 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect github.com/oklog/run v1.2.0 // indirect - github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5 // indirect + github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/squat/generic-device-plugin v0.0.0-20251019101956-043a51e18f31 // indirect @@ -139,7 +139,7 @@ require ( k8s.io/api v1.34.1 // indirect k8s.io/client-go v1.34.1 // indirect k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect sigs.k8s.io/kustomize/api v0.20.1 // indirect sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect diff --git a/etcd/go.sum b/etcd/go.sum index f3acf1af8a..a20f9d9ed9 100644 --- a/etcd/go.sum +++ b/etcd/go.sum @@ -133,10 +133,10 @@ github.com/oklog/run v1.2.0 h1:O8x3yXwah4A73hJdlrwo/2X6J62gE5qTMusH0dvz60E= github.com/oklog/run v1.2.0/go.mod h1:mgDbKRSwPhJfesJ4PntqFUbKQRZ50NgmZTSPlFA0YFk= github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 h1:Ot2fbEEPmF3WlPQkyEW/bUCV38GMugH/UmZvxpWceNc= -github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY= -github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c h1:gJvhduWIrpzoUTwrJjjeul+hGETKkhRhEZosBg/X3Hg= -github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE= +github.com/openshift/api v0.0.0-20251117165054-348370f055bf h1:8VzLlQFneh4bnHA3SS+Bb9VWdVaR7WugtSeqIngMC3s= +github.com/openshift/api v0.0.0-20251117165054-348370f055bf/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY= +github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af h1:UiYYMi/CCV+kwWrXuXfuUSOY2yNXOpWpNVgHc6aLQlE= +github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE= github.com/openshift/etcd/api/v3 v3.5.0-alpha.0.0.20251111143920-806f690e1f14 h1:3fyOgcjFbMjZgVGYGZvSTH8Zi5LavfXVwwjnAZOfpQA= github.com/openshift/etcd/api/v3 v3.5.0-alpha.0.0.20251111143920-806f690e1f14/go.mod h1:ob0/oWA/UQQlT1BmaEkWQzI0sJ1M0Et0mMpaABxguOQ= github.com/openshift/etcd/client/pkg/v3 v3.0.0-20251111143920-806f690e1f14 h1:dXIOqD1issPq7FFvWUcZ20QHi/tJ0bn0egqTDW0PuCU= @@ -147,8 +147,8 @@ github.com/openshift/etcd/pkg/v3 v3.5.0-alpha.0.0.20251111143920-806f690e1f14 h1 github.com/openshift/etcd/pkg/v3 v3.5.0-alpha.0.0.20251111143920-806f690e1f14/go.mod h1:uqrXrzmMIJDEy5j00bCqhVLzR5jEJIwDp5wTlLwPGOU= github.com/openshift/etcd/server/v3 v3.5.0-alpha.0.0.20251111143920-806f690e1f14 h1:SpT3jxkbfO6cx9UH3dcDCmqBkbUuioFhqqYJRLlU1Rc= github.com/openshift/etcd/server/v3 v3.5.0-alpha.0.0.20251111143920-806f690e1f14/go.mod h1:PLuhyVXz8WWRhzXDsl3A3zv/+aK9e4A9lpQkqawIaH0= -github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5 h1:bANtDc8SgetSK4nQehf59x3+H9FqVJCprgjs49/OTg0= -github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5/go.mod h1:OlFFws1AO51uzfc48MsStGE4SFMWlMZD0+f5a/zCtKI= +github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f h1:r1pLosA7z3+t+lzW29FU54sg4/pAWu+lsKD0L5Gx3wg= +github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f/go.mod h1:ErDfiIrPHH+menTP/B4LKd0nxFDdvCbTamAc6SWMIh8= github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20251001123353-fd5b1fb35db1 h1:PMTgifBcBRLJJiM+LgSzPDTk9/Rx4qS09OUrfpY6GBQ= github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20251001123353-fd5b1fb35db1/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= @@ -322,8 +322,8 @@ k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I= diff --git a/etcd/vendor/github.com/openshift/api/config/v1/types_cluster_version.go b/etcd/vendor/github.com/openshift/api/config/v1/types_cluster_version.go index cfac9689e4..e5aad151ea 100644 --- a/etcd/vendor/github.com/openshift/api/config/v1/types_cluster_version.go +++ b/etcd/vendor/github.com/openshift/api/config/v1/types_cluster_version.go @@ -72,8 +72,10 @@ type ClusterVersionSpec struct { // // If an upgrade fails the operator will halt and report status // about the failing component. Setting the desired update value back to - // the previous version will cause a rollback to be attempted. Not all - // rollbacks will succeed. + // the previous version will cause a rollback to be attempted if the + // previous version is within the current minor version. Not all + // rollbacks will succeed, and some may unrecoverably break the + // cluster. // // +optional DesiredUpdate *Update `json:"desiredUpdate,omitempty"` @@ -718,10 +720,14 @@ type Update struct { Image string `json:"image"` // force allows an administrator to update to an image that has failed - // verification or upgradeable checks. This option should only - // be used when the authenticity of the provided image has been verified out - // of band because the provided image will run with full administrative access - // to the cluster. Do not use this flag with images that comes from unknown + // verification or upgradeable checks that are designed to keep your + // cluster safe. Only use this if: + // * you are testing unsigned release images in short-lived test clusters or + // * you are working around a known bug in the cluster-version + // operator and you have verified the authenticity of the provided + // image yourself. + // The provided image will run with full administrative access + // to the cluster. Do not use this flag with images that come from unknown // or potentially malicious sources. // // +optional diff --git a/etcd/vendor/github.com/openshift/api/config/v1/types_infrastructure.go b/etcd/vendor/github.com/openshift/api/config/v1/types_infrastructure.go index effafde644..2f80945d38 100644 --- a/etcd/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ b/etcd/vendor/github.com/openshift/api/config/v1/types_infrastructure.go @@ -183,6 +183,17 @@ const ( LoadBalancerTypeOpenShiftManagedDefault PlatformLoadBalancerType = "OpenShiftManagedDefault" ) +// DNSRecordsType defines whether api, api-int, and ingress records are provided by +// the internal DNS infrastructure or must be configured external to the cluster. +// +kubebuilder:validation:Enum=Internal;External +// +enum +type DNSRecordsType string + +const ( + DNSRecordsTypeExternal DNSRecordsType = "External" + DNSRecordsTypeInternal DNSRecordsType = "Internal" +) + // PlatformType is a specific supported infrastructure provider. // +kubebuilder:validation:Enum="";AWS;Azure;BareMetal;GCP;Libvirt;OpenStack;None;VSphere;oVirt;IBMCloud;KubeVirt;EquinixMetal;PowerVS;AlibabaCloud;Nutanix;External type PlatformType string @@ -491,6 +502,21 @@ type AWSServiceEndpoint struct { URL string `json:"url"` } +// IPFamilyType represents the IP protocol family that cloud platform resources should use. +// +kubebuilder:validation:Enum=IPv4;DualStackIPv6Primary;DualStackIPv4Primary +type IPFamilyType string + +const ( + // IPv4 indicates that cloud platform resources should use IPv4 addressing only. + IPv4 IPFamilyType = "IPv4" + + // DualStackIPv6Primary indicates that cloud platform resources should use dual-stack networking with IPv6 as primary. + DualStackIPv6Primary IPFamilyType = "DualStackIPv6Primary" + + // DualStackIPv4Primary indicates that cloud platform resources should use dual-stack networking with IPv4 as primary. + DualStackIPv4Primary IPFamilyType = "DualStackIPv4Primary" +) + // AWSPlatformSpec holds the desired state of the Amazon Web Services infrastructure provider. // This only includes fields that can be modified in the cluster. type AWSPlatformSpec struct { @@ -536,6 +562,18 @@ type AWSPlatformStatus struct { // +optional // +nullable CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"` + + // ipFamily specifies the IP protocol family that should be used for AWS + // network resources. This controls whether AWS resources are created with + // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + // protocol family. + // + // +default="IPv4" + // +kubebuilder:default="IPv4" + // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="ipFamily is immutable once set" + // +openshift:enable:FeatureGate=AWSDualStackInstall + // +optional + IPFamily IPFamilyType `json:"ipFamily,omitempty"` } // AWSResourceTag is a tag to apply to AWS resources created for the cluster. @@ -607,6 +645,18 @@ type AzurePlatformStatus struct { // +openshift:enable:FeatureGate=AzureClusterHostedDNSInstall // +optional CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"` + + // ipFamily specifies the IP protocol family that should be used for Azure + // network resources. This controls whether Azure resources are created with + // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + // protocol family. + // + // +default="IPv4" + // +kubebuilder:default="IPv4" + // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="ipFamily is immutable once set" + // +openshift:enable:FeatureGate=AzureDualStackInstall + // +optional + IPFamily IPFamilyType `json:"ipFamily,omitempty"` } // AzureResourceTag is a tag to apply to Azure resources created for the cluster. @@ -983,6 +1033,7 @@ type BareMetalPlatformSpec struct { // BareMetalPlatformStatus holds the current status of the BareMetal infrastructure provider. // For more information about the network architecture used with the BareMetal platform type, see: // https://github.com/openshift/installer/blob/master/docs/design/baremetal/networking-infrastructure.md +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type BareMetalPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1035,6 +1086,22 @@ type BareMetalPlatformStatus struct { // +optional LoadBalancer *BareMetalPlatformLoadBalancer `json:"loadBalancer,omitempty"` + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` + // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. // +listType=atomic // +kubebuilder:validation:MaxItems=32 @@ -1111,6 +1178,7 @@ type OpenStackPlatformSpec struct { } // OpenStackPlatformStatus holds the current status of the OpenStack infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type OpenStackPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1167,6 +1235,22 @@ type OpenStackPlatformStatus struct { // +optional LoadBalancer *OpenStackPlatformLoadBalancer `json:"loadBalancer,omitempty"` + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` + // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. // +listType=atomic // +kubebuilder:validation:MaxItems=32 @@ -1201,6 +1285,7 @@ type OvirtPlatformLoadBalancer struct { type OvirtPlatformSpec struct{} // OvirtPlatformStatus holds the current status of the oVirt infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type OvirtPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1247,6 +1332,22 @@ type OvirtPlatformStatus struct { // +kubebuilder:default={"type": "OpenShiftManagedDefault"} // +optional LoadBalancer *OvirtPlatformLoadBalancer `json:"loadBalancer,omitempty"` + + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` } // VSpherePlatformLoadBalancer defines the load balancer used by the cluster on VSphere platform. @@ -1644,6 +1745,7 @@ type VSpherePlatformSpec struct { } // VSpherePlatformStatus holds the current status of the vSphere infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type VSpherePlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1696,6 +1798,22 @@ type VSpherePlatformStatus struct { // +optional LoadBalancer *VSpherePlatformLoadBalancer `json:"loadBalancer,omitempty"` + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` + // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. // +listType=atomic // +kubebuilder:validation:MaxItems=32 @@ -2069,6 +2187,7 @@ type NutanixPrismElementEndpoint struct { } // NutanixPlatformStatus holds the current status of the Nutanix infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type NutanixPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -2112,6 +2231,22 @@ type NutanixPlatformStatus struct { // +kubebuilder:default={"type": "OpenShiftManagedDefault"} // +optional LoadBalancer *NutanixPlatformLoadBalancer `json:"loadBalancer,omitempty"` + + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml b/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml index d8d6b502ee..a1d37f65d0 100644 --- a/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml @@ -362,7 +362,9 @@ infrastructures.config.openshift.io: Category: "" FeatureGates: - AWSClusterHostedDNSInstall + - AWSDualStackInstall - AzureClusterHostedDNSInstall + - AzureDualStackInstall - DualReplica - DyanmicServiceEndpointIBMCloud - GCPClusterHostedDNSInstall @@ -370,6 +372,7 @@ infrastructures.config.openshift.io: - HighlyAvailableArbiter - HighlyAvailableArbiter+DualReplica - NutanixMultiSubnets + - OnPremDNSRecords - VSphereHostVMGroupZonal - VSphereMultiNetworks FilenameOperatorName: config-operator diff --git a/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go b/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go index 31aab4dfe8..b9d0799fbd 100644 --- a/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go +++ b/etcd/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go @@ -777,7 +777,7 @@ func (ClusterVersionList) SwaggerDoc() map[string]string { var map_ClusterVersionSpec = map[string]string{ "": "ClusterVersionSpec is the desired version state of the cluster. It includes the version the cluster should be at, how the cluster is identified, and where the cluster should look for version updates.", "clusterID": "clusterID uniquely identifies this cluster. This is expected to be an RFC4122 UUID value (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx in hexadecimal values). This is a required field.", - "desiredUpdate": "desiredUpdate is an optional field that indicates the desired value of the cluster version. Setting this value will trigger an upgrade (if the current version does not match the desired version). The set of recommended update values is listed as part of available updates in status, and setting values outside that range may cause the upgrade to fail.\n\nSome of the fields are inter-related with restrictions and meanings described here. 1. image is specified, version is specified, architecture is specified. API validation error. 2. image is specified, version is specified, architecture is not specified. The version extracted from the referenced image must match the specified version. 3. image is specified, version is not specified, architecture is specified. API validation error. 4. image is specified, version is not specified, architecture is not specified. image is used. 5. image is not specified, version is specified, architecture is specified. version and desired architecture are used to select an image. 6. image is not specified, version is specified, architecture is not specified. version and current architecture are used to select an image. 7. image is not specified, version is not specified, architecture is specified. API validation error. 8. image is not specified, version is not specified, architecture is not specified. API validation error.\n\nIf an upgrade fails the operator will halt and report status about the failing component. Setting the desired update value back to the previous version will cause a rollback to be attempted. Not all rollbacks will succeed.", + "desiredUpdate": "desiredUpdate is an optional field that indicates the desired value of the cluster version. Setting this value will trigger an upgrade (if the current version does not match the desired version). The set of recommended update values is listed as part of available updates in status, and setting values outside that range may cause the upgrade to fail.\n\nSome of the fields are inter-related with restrictions and meanings described here. 1. image is specified, version is specified, architecture is specified. API validation error. 2. image is specified, version is specified, architecture is not specified. The version extracted from the referenced image must match the specified version. 3. image is specified, version is not specified, architecture is specified. API validation error. 4. image is specified, version is not specified, architecture is not specified. image is used. 5. image is not specified, version is specified, architecture is specified. version and desired architecture are used to select an image. 6. image is not specified, version is specified, architecture is not specified. version and current architecture are used to select an image. 7. image is not specified, version is not specified, architecture is specified. API validation error. 8. image is not specified, version is not specified, architecture is not specified. API validation error.\n\nIf an upgrade fails the operator will halt and report status about the failing component. Setting the desired update value back to the previous version will cause a rollback to be attempted if the previous version is within the current minor version. Not all rollbacks will succeed, and some may unrecoverably break the cluster.", "upstream": "upstream may be used to specify the preferred update server. By default it will use the appropriate update server for the cluster and region.", "channel": "channel is an identifier for explicitly requesting a non-default set of updates to be applied to this cluster. The default channel will contain stable updates that are appropriate for production clusters.", "capabilities": "capabilities configures the installation of optional, core cluster components. A null value here is identical to an empty object; see the child properties for default semantics.", @@ -878,7 +878,7 @@ var map_Update = map[string]string{ "architecture": "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, image cannot be set and version must be set. Valid values are 'Multi' and empty.", "version": "version is a semantic version identifying the update version. version is required if architecture is specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", "image": "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture cannot be specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", - "force": "force allows an administrator to update to an image that has failed verification or upgradeable checks. This option should only be used when the authenticity of the provided image has been verified out of band because the provided image will run with full administrative access to the cluster. Do not use this flag with images that comes from unknown or potentially malicious sources.", + "force": "force allows an administrator to update to an image that has failed verification or upgradeable checks that are designed to keep your cluster safe. Only use this if: * you are testing unsigned release images in short-lived test clusters or * you are working around a known bug in the cluster-version\n operator and you have verified the authenticity of the provided\n image yourself.\nThe provided image will run with full administrative access to the cluster. Do not use this flag with images that come from unknown or potentially malicious sources.", } func (Update) SwaggerDoc() map[string]string { @@ -1410,6 +1410,7 @@ var map_AWSPlatformStatus = map[string]string{ "serviceEndpoints": "serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.", "resourceTags": "resourceTags is a list of additional tags to apply to AWS resources created for the cluster. See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags available for the user.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "ipFamily": "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", } func (AWSPlatformStatus) SwaggerDoc() map[string]string { @@ -1481,6 +1482,7 @@ var map_AzurePlatformStatus = map[string]string{ "armEndpoint": "armEndpoint specifies a URL to use for resource management in non-soverign clouds such as Azure Stack.", "resourceTags": "resourceTags is a list of additional tags to apply to Azure resources created for the cluster. See https://docs.microsoft.com/en-us/rest/api/resources/tags for information on tagging Azure resources. Due to limitations on Automation, Content Delivery Network, DNS Azure resources, a maximum of 15 tags may be applied. OpenShift reserves 5 tags for internal use, allowing 10 tags for user configuration.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "ipFamily": "ipFamily specifies the IP protocol family that should be used for Azure network resources. This controls whether Azure resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", } func (AzurePlatformStatus) SwaggerDoc() map[string]string { @@ -1525,6 +1527,7 @@ var map_BareMetalPlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", "machineNetworks": "machineNetworks are IP networks used to connect all the OpenShift cluster nodes.", } @@ -1787,6 +1790,7 @@ var map_NutanixPlatformStatus = map[string]string{ "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.\n\nDeprecated: Use IngressIPs instead.", "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", } func (NutanixPlatformStatus) SwaggerDoc() map[string]string { @@ -1853,6 +1857,7 @@ var map_OpenStackPlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for OpenStack deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", "machineNetworks": "machineNetworks are IP networks used to connect all the OpenShift cluster nodes.", } @@ -1885,6 +1890,7 @@ var map_OvirtPlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", } func (OvirtPlatformStatus) SwaggerDoc() map[string]string { @@ -2067,6 +2073,7 @@ var map_VSpherePlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", "machineNetworks": "machineNetworks are IP networks used to connect all the OpenShift cluster nodes.", } diff --git a/etcd/vendor/github.com/openshift/api/features/features.go b/etcd/vendor/github.com/openshift/api/features/features.go new file mode 100644 index 0000000000..9c74d4c2df --- /dev/null +++ b/etcd/vendor/github.com/openshift/api/features/features.go @@ -0,0 +1,926 @@ +package features + +import ( + "fmt" + + configv1 "github.com/openshift/api/config/v1" +) + +func FeatureSets(clusterProfile ClusterProfileName, featureSet configv1.FeatureSet) (*FeatureGateEnabledDisabled, error) { + byFeatureSet, ok := allFeatureGates[clusterProfile] + if !ok { + return nil, fmt.Errorf("no information found for ClusterProfile=%q", clusterProfile) + } + featureGates, ok := byFeatureSet[featureSet] + if !ok { + return nil, fmt.Errorf("no information found for FeatureSet=%q under ClusterProfile=%q", featureSet, clusterProfile) + } + return featureGates.DeepCopy(), nil +} + +func AllFeatureSets() map[ClusterProfileName]map[configv1.FeatureSet]*FeatureGateEnabledDisabled { + ret := map[ClusterProfileName]map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} + + for clusterProfile, byFeatureSet := range allFeatureGates { + newByFeatureSet := map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} + + for featureSet, enabledDisabled := range byFeatureSet { + newByFeatureSet[featureSet] = enabledDisabled.DeepCopy() + } + ret[clusterProfile] = newByFeatureSet + } + + return ret +} + +var ( + allFeatureGates = map[ClusterProfileName]map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} + + FeatureGateConsolePluginCSP = newFeatureGate("ConsolePluginContentSecurityPolicy"). + reportProblemsToJiraComponent("Management Console"). + contactPerson("jhadvig"). + productScope(ocpSpecific). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enhancementPR("https://github.com/openshift/enhancements/pull/1706"). + mustRegister() + + FeatureGateServiceAccountTokenNodeBinding = newFeatureGate("ServiceAccountTokenNodeBinding"). + reportProblemsToJiraComponent("apiserver-auth"). + contactPerson("ibihim"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4193"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMutatingAdmissionPolicy = newFeatureGate("MutatingAdmissionPolicy"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("benluddy"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/3962"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateGatewayAPI = newFeatureGate("GatewayAPI"). + reportProblemsToJiraComponent("Routing"). + contactPerson("miciah"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateOpenShiftPodSecurityAdmission = newFeatureGate("OpenShiftPodSecurityAdmission"). + reportProblemsToJiraComponent("auth"). + contactPerson("ibihim"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/899"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateBuildCSIVolumes = newFeatureGate("BuildCSIVolumes"). + reportProblemsToJiraComponent("builds"). + contactPerson("adkaplan"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateDynamicResourceAllocation = newFeatureGate("DynamicResourceAllocation"). + reportProblemsToJiraComponent("scheduling"). + contactPerson("jchaloup"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4381"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAzureWorkloadIdentity = newFeatureGate("AzureWorkloadIdentity"). + reportProblemsToJiraComponent("cloud-credential-operator"). + contactPerson("abutcher"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAzureDedicatedHosts = newFeatureGate("AzureDedicatedHosts"). + reportProblemsToJiraComponent("installer"). + contactPerson("rvanderp3"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1783"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMaxUnavailableStatefulSet = newFeatureGate("MaxUnavailableStatefulSet"). + reportProblemsToJiraComponent("apps"). + contactPerson("atiratree"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/961"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateEventedPLEG = newFeatureGate("EventedPLEG"). + reportProblemsToJiraComponent("node"). + contactPerson("sairameshv"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/3386"). + mustRegister() + + FeatureGateSigstoreImageVerification = newFeatureGate("SigstoreImageVerification"). + reportProblemsToJiraComponent("node"). + contactPerson("sgrunert"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateSigstoreImageVerificationPKI = newFeatureGate("SigstoreImageVerificationPKI"). + reportProblemsToJiraComponent("node"). + contactPerson("QiWang"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1658"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAlibabaPlatform = newFeatureGate("AlibabaPlatform"). + reportProblemsToJiraComponent("cloud-provider"). + contactPerson("jspeed"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateVSphereHostVMGroupZonal = newFeatureGate("VSphereHostVMGroupZonal"). + reportProblemsToJiraComponent("splat"). + contactPerson("jcpowermac"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1677"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateVSphereMultiDisk = newFeatureGate("VSphereMultiDisk"). + reportProblemsToJiraComponent("splat"). + contactPerson("vr4manta"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1709"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateRouteExternalCertificate = newFeatureGate("RouteExternalCertificate"). + reportProblemsToJiraComponent("router"). + contactPerson("chiragkyal"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateCPMSMachineNamePrefix = newFeatureGate("CPMSMachineNamePrefix"). + reportProblemsToJiraComponent("Cloud Compute / ControlPlaneMachineSet"). + contactPerson("chiragkyal"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1714"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAdminNetworkPolicy = newFeatureGate("AdminNetworkPolicy"). + reportProblemsToJiraComponent("Networking/ovn-kubernetes"). + contactPerson("tssurya"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateNetworkSegmentation = newFeatureGate("NetworkSegmentation"). + reportProblemsToJiraComponent("Networking/ovn-kubernetes"). + contactPerson("tssurya"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1623"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAdditionalRoutingCapabilities = newFeatureGate("AdditionalRoutingCapabilities"). + reportProblemsToJiraComponent("Networking/cluster-network-operator"). + contactPerson("jcaamano"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateRouteAdvertisements = newFeatureGate("RouteAdvertisements"). + reportProblemsToJiraComponent("Networking/ovn-kubernetes"). + contactPerson("jcaamano"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateNetworkLiveMigration = newFeatureGate("NetworkLiveMigration"). + reportProblemsToJiraComponent("Networking/ovn-kubernetes"). + contactPerson("pliu"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateNetworkDiagnosticsConfig = newFeatureGate("NetworkDiagnosticsConfig"). + reportProblemsToJiraComponent("Networking/cluster-network-operator"). + contactPerson("kyrtapz"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateOVNObservability = newFeatureGate("OVNObservability"). + reportProblemsToJiraComponent("Networking"). + contactPerson("npinaeva"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateBackendQuotaGiB = newFeatureGate("EtcdBackendQuota"). + reportProblemsToJiraComponent("etcd"). + contactPerson("hasbro17"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAutomatedEtcdBackup = newFeatureGate("AutomatedEtcdBackup"). + reportProblemsToJiraComponent("etcd"). + contactPerson("hasbro17"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMachineAPIOperatorDisableMachineHealthCheckController = newFeatureGate("MachineAPIOperatorDisableMachineHealthCheckController"). + reportProblemsToJiraComponent("ecoproject"). + contactPerson("msluiter"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + mustRegister() + + FeatureGateDNSNameResolver = newFeatureGate("DNSNameResolver"). + reportProblemsToJiraComponent("dns"). + contactPerson("miciah"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMachineConfigNodes = newFeatureGate("MachineConfigNodes"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("ijanssen"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1765"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateImageModeStatusReporting = newFeatureGate("ImageModeStatusReporting"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("ijanssen"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1809"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateClusterAPIInstall = newFeatureGate("ClusterAPIInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("vincepri"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + mustRegister() + + FeatureGateGCPClusterHostedDNS = newFeatureGate("GCPClusterHostedDNS"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAWSClusterHostedDNS = newFeatureGate("AWSClusterHostedDNS"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAzureClusterHostedDNSInstall = newFeatureGate("AzureClusterHostedDNSInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("sadasu"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1468"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMixedCPUsAllocation = newFeatureGate("MixedCPUsAllocation"). + reportProblemsToJiraComponent("NodeTuningOperator"). + contactPerson("titzhak"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateManagedBootImages = newFeatureGate("ManagedBootImages"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("djoshy"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateManagedBootImagesAWS = newFeatureGate("ManagedBootImagesAWS"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("djoshy"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateManagedBootImagesvSphere = newFeatureGate("ManagedBootImagesvSphere"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("rsaini"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1496"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateManagedBootImagesAzure = newFeatureGate("ManagedBootImagesAzure"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("djoshy"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1761"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateManagedBootImagesCPMS = newFeatureGate("ManagedBootImagesCPMS"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("djoshy"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1818"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateBootImageSkewEnforcement = newFeatureGate("BootImageSkewEnforcement"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("djoshy"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1761"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateBootcNodeManagement = newFeatureGate("BootcNodeManagement"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("inesqyx"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateSignatureStores = newFeatureGate("SignatureStores"). + reportProblemsToJiraComponent("Cluster Version Operator"). + contactPerson("lmohanty"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateKMSv1 = newFeatureGate("KMSv1"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("dgrisonnet"). + productScope(kubernetes). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGatePinnedImages = newFeatureGate("PinnedImages"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("RishabhSaini"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateUpgradeStatus = newFeatureGate("UpgradeStatus"). + reportProblemsToJiraComponent("Cluster Version Operator"). + contactPerson("pmuller"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateTranslateStreamCloseWebsocketRequests = newFeatureGate("TranslateStreamCloseWebsocketRequests"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("akashem"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4006"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateVolumeAttributesClass = newFeatureGate("VolumeAttributesClass"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("dfajmon"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/3751"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateVolumeGroupSnapshot = newFeatureGate("VolumeGroupSnapshot"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("fbertina"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/3476"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateExternalSnapshotMetadata = newFeatureGate("ExternalSnapshotMetadata"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("jdobson"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/3314"). + enableIn(configv1.DevPreviewNoUpgrade). + mustRegister() + + FeatureGateExternalOIDC = newFeatureGate("ExternalOIDC"). + reportProblemsToJiraComponent("authentication"). + contactPerson("liouk"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1596"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateExternalOIDCWithAdditionalClaimMappings = newFeatureGate("ExternalOIDCWithUIDAndExtraClaimMappings"). + reportProblemsToJiraComponent("authentication"). + contactPerson("bpalmer"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1777"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateExample = newFeatureGate("Example"). + reportProblemsToJiraComponent("cluster-config"). + contactPerson("deads"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateExample2 = newFeatureGate("Example2"). + reportProblemsToJiraComponent("cluster-config"). + contactPerson("JoelSpeed"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade). + mustRegister() + + FeatureGateNewOLM = newFeatureGate("NewOLM"). + reportProblemsToJiraComponent("olm"). + contactPerson("joe"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateNewOLMCatalogdAPIV1Metas = newFeatureGate("NewOLMCatalogdAPIV1Metas"). + reportProblemsToJiraComponent("olm"). + contactPerson("jordank"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1749"). + enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateNewOLMPreflightPermissionChecks = newFeatureGate("NewOLMPreflightPermissionChecks"). + reportProblemsToJiraComponent("olm"). + contactPerson("tshort"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1768"). + enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateNewOLMOwnSingleNamespace = newFeatureGate("NewOLMOwnSingleNamespace"). + reportProblemsToJiraComponent("olm"). + contactPerson("nschieder"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1774"). + enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateNewOLMWebhookProviderOpenshiftServiceCA = newFeatureGate("NewOLMWebhookProviderOpenshiftServiceCA"). + reportProblemsToJiraComponent("olm"). + contactPerson("pegoncal"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1844"). + enableForClusterProfile(SelfManaged, configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateInsightsOnDemandDataGather = newFeatureGate("InsightsOnDemandDataGather"). + reportProblemsToJiraComponent("insights"). + contactPerson("tremes"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateInsightsConfig = newFeatureGate("InsightsConfig"). + reportProblemsToJiraComponent("insights"). + contactPerson("tremes"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMetricsCollectionProfiles = newFeatureGate("MetricsCollectionProfiles"). + reportProblemsToJiraComponent("Monitoring"). + contactPerson("rexagod"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateClusterAPIInstallIBMCloud = newFeatureGate("ClusterAPIInstallIBMCloud"). + reportProblemsToJiraComponent("Installer"). + contactPerson("cjschaef"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMachineAPIMigration = newFeatureGate("MachineAPIMigration"). + reportProblemsToJiraComponent("OCPCLOUD"). + contactPerson("jspeed"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateClusterAPIMachineManagement = newFeatureGate("ClusterAPIMachineManagement"). + reportProblemsToJiraComponent("Cloud Compute / Cluster API Providers"). + contactPerson("ddonati"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1465"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateClusterAPIMachineManagementVSphere = newFeatureGate("ClusterAPIMachineManagementVSphere"). + reportProblemsToJiraComponent("SPLAT"). + contactPerson("jcpowermac"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1465"). + enableIn(configv1.DevPreviewNoUpgrade). + mustRegister() + + FeatureGateClusterMonitoringConfig = newFeatureGate("ClusterMonitoringConfig"). + reportProblemsToJiraComponent("Monitoring"). + contactPerson("marioferh"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMultiArchInstallAzure = newFeatureGate("MultiArchInstallAzure"). + reportProblemsToJiraComponent("Installer"). + contactPerson("r4f4"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + mustRegister() + + FeatureGateImageStreamImportMode = newFeatureGate("ImageStreamImportMode"). + reportProblemsToJiraComponent("Multi-Arch"). + contactPerson("psundara"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateUserNamespacesSupport = newFeatureGate("UserNamespacesSupport"). + reportProblemsToJiraComponent("Node"). + contactPerson("haircommander"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/127"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + // Note: this feature is perma-alpha, but it is safe and desireable to enable. + // It was an oversight in upstream to not remove the feature gate after the version skew became safe in 1.33. + // See https://github.com/kubernetes/enhancements/tree/d4226c42/keps/sig-node/127-user-namespaces#pod-security-standards-pss-integration + FeatureGateUserNamespacesPodSecurityStandards = newFeatureGate("UserNamespacesPodSecurityStandards"). + reportProblemsToJiraComponent("Node"). + contactPerson("haircommander"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/127"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateProcMountType = newFeatureGate("ProcMountType"). + reportProblemsToJiraComponent("Node"). + contactPerson("haircommander"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4265"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateVSphereMultiNetworks = newFeatureGate("VSphereMultiNetworks"). + reportProblemsToJiraComponent("SPLAT"). + contactPerson("rvanderp"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateIngressControllerDynamicConfigurationManager = newFeatureGate("IngressControllerDynamicConfigurationManager"). + reportProblemsToJiraComponent("Networking/router"). + contactPerson("miciah"). + productScope(ocpSpecific). + enhancementPR(legacyFeatureGateWithoutEnhancement). + enableIn(configv1.DevPreviewNoUpgrade). + mustRegister() + + FeatureGateMinimumKubeletVersion = newFeatureGate("MinimumKubeletVersion"). + reportProblemsToJiraComponent("Node"). + contactPerson("haircommander"). + productScope(ocpSpecific). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enhancementPR("https://github.com/openshift/enhancements/pull/1697"). + mustRegister() + + FeatureGateNutanixMultiSubnets = newFeatureGate("NutanixMultiSubnets"). + reportProblemsToJiraComponent("Cloud Compute / Nutanix Provider"). + contactPerson("yanhli"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1711"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateKMSEncryptionProvider = newFeatureGate("KMSEncryptionProvider"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("swghosh"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1682"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateHighlyAvailableArbiter = newFeatureGate("HighlyAvailableArbiter"). + reportProblemsToJiraComponent("Two Node with Arbiter"). + contactPerson("eggfoobar"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1674"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateCVOConfiguration = newFeatureGate("ClusterVersionOperatorConfiguration"). + reportProblemsToJiraComponent("Cluster Version Operator"). + contactPerson("dhurta"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1492"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateGCPCustomAPIEndpoints = newFeatureGate("GCPCustomAPIEndpoints"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1492"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateDyanmicServiceEndpointIBMCloud = newFeatureGate("DyanmicServiceEndpointIBMCloud"). + reportProblemsToJiraComponent("Cloud Compute / IBM Provider"). + contactPerson("jared-hayes-dev"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1712"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateSELinuxMount = newFeatureGate("SELinuxMount"). + reportProblemsToJiraComponent("Storage / Kubernetes"). + contactPerson("jsafrane"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/1710"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateDualReplica = newFeatureGate("DualReplica"). + reportProblemsToJiraComponent("Two Node Fencing"). + contactPerson("jaypoulz"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1675"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateGatewayAPIController = newFeatureGate("GatewayAPIController"). + reportProblemsToJiraComponent("Routing"). + contactPerson("miciah"). + productScope(ocpSpecific). + // Previously, the "GatewayAPI" feature gate managed both the GatewayAPI CRDs + // and the Gateway Controller. However, with the introduction of Gateway CRD + // lifecycle management (EP#1756), these responsibilities were separated. + // A dedicated feature gate now controls the Gateway Controller to distinguish + // its production readiness from that of the CRDs. + enhancementPR("https://github.com/openshift/enhancements/pull/1756"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureShortCertRotation = newFeatureGate("ShortCertRotation"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("vrutkovs"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1670"). + mustRegister() + + FeatureGateVSphereConfigurableMaxAllowedBlockVolumesPerNode = newFeatureGate("VSphereConfigurableMaxAllowedBlockVolumesPerNode"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("rbednar"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1748"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAzureMultiDisk = newFeatureGate("AzureMultiDisk"). + reportProblemsToJiraComponent("splat"). + contactPerson("jcpowermac"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1779"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateStoragePerformantSecurityPolicy = newFeatureGate("StoragePerformantSecurityPolicy"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("hekumar"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1804"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateMultiDiskSetup = newFeatureGate("MultiDiskSetup"). + reportProblemsToJiraComponent("splat"). + contactPerson("jcpowermac"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1805"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAWSDedicatedHosts = newFeatureGate("AWSDedicatedHosts"). + reportProblemsToJiraComponent("splat"). + contactPerson("rvanderp3"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1781"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateVSphereMixedNodeEnv = newFeatureGate("VSphereMixedNodeEnv"). + reportProblemsToJiraComponent("splat"). + contactPerson("vr4manta"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1772"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGatePreconfiguredUDNAddresses = newFeatureGate("PreconfiguredUDNAddresses"). + reportProblemsToJiraComponent("Networking/ovn-kubernetes"). + contactPerson("kyrtapz"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1793"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateAWSServiceLBNetworkSecurityGroup = newFeatureGate("AWSServiceLBNetworkSecurityGroup"). + reportProblemsToJiraComponent("Cloud Compute / Cloud Controller Manager"). + contactPerson("mtulio"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1802"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateImageVolume = newFeatureGate("ImageVolume"). + reportProblemsToJiraComponent("Node"). + contactPerson("haircommander"). + productScope(kubernetes). + enhancementPR("https://github.com/openshift/enhancements/pull/1792"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). + mustRegister() + + FeatureGateNoRegistryClusterOperations = newFeatureGate("NoRegistryClusterOperations"). + reportProblemsToJiraComponent("Installer / Agent based installation"). + contactPerson("andfasano"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1821"). + enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateGCPClusterHostedDNSInstall = newFeatureGate("GCPClusterHostedDNSInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1468"). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAWSClusterHostedDNSInstall = newFeatureGate("AWSClusterHostedDNSInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1468"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateGCPCustomAPIEndpointsInstall = newFeatureGate("GCPCustomAPIEndpointsInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1492"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateIrreconcilableMachineConfig = newFeatureGate("IrreconcilableMachineConfig"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("pabrodri"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1785"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateAWSDualStackInstall = newFeatureGate("AWSDualStackInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("sadasu"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1806"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateAzureDualStackInstall = newFeatureGate("AzureDualStackInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("jhixson74"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1806"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateGCPDualStackInstall = newFeatureGate("GCPDualStackInstall"). + reportProblemsToJiraComponent("Installer"). + contactPerson("barbacbd"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1806"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureCBORServingAndStorage = newFeatureGate("CBORServingAndStorage"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("benluddy"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4222"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureCBORClientsAllowCBOR = newFeatureGate("ClientsAllowCBOR"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("benluddy"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4222"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureClientsPreferCBOR = newFeatureGate("ClientsPreferCBOR"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("benluddy"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4222"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureEventTTL = newFeatureGate("EventTTL"). + reportProblemsToJiraComponent("kube-apiserver"). + contactPerson("tjungblu"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1857"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateMutableCSINodeAllocatableCount = newFeatureGate("MutableCSINodeAllocatableCount"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("jsafrane"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4876"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateOSStreams = newFeatureGate("OSStreams"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("pabrodri"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1874"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateCRDCompatibilityRequirementOperator = newFeatureGate("CRDCompatibilityRequirementOperator"). + reportProblemsToJiraComponent("Cloud Compute / Cluster API Providers"). + contactPerson("ddonati"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1845"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateOnPremDNSRecords = newFeatureGate("OnPremDNSRecords"). + reportProblemsToJiraComponent("Networking / On-Prem DNS"). + contactPerson("bnemec"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1803"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() +) diff --git a/etcd/vendor/github.com/openshift/api/features/legacyfeaturegates.go b/etcd/vendor/github.com/openshift/api/features/legacyfeaturegates.go new file mode 100644 index 0000000000..dd11fdf663 --- /dev/null +++ b/etcd/vendor/github.com/openshift/api/features/legacyfeaturegates.go @@ -0,0 +1,119 @@ +package features + +import "k8s.io/apimachinery/pkg/util/sets" + +var legacyFeatureGates = sets.New( + "AWSClusterHostedDNS", + // never add to this list, if you think you have an exception ask @deads2k + "AWSEFSDriverVolumeMetrics", + // never add to this list, if you think you have an exception ask @deads2k + "AdditionalRoutingCapabilities", + // never add to this list, if you think you have an exception ask @deads2k + "AdminNetworkPolicy", + // never add to this list, if you think you have an exception ask @deads2k + "AlibabaPlatform", + // never add to this list, if you think you have an exception ask @deads2k + "AutomatedEtcdBackup", + // never add to this list, if you think you have an exception ask @deads2k + "AzureWorkloadIdentity", + // never add to this list, if you think you have an exception ask @deads2k + "BootcNodeManagement", + // never add to this list, if you think you have an exception ask @deads2k + "BuildCSIVolumes", + // never add to this list, if you think you have an exception ask @deads2k + "ClusterAPIInstall", + // never add to this list, if you think you have an exception ask @deads2k + "ClusterAPIInstallIBMCloud", + // never add to this list, if you think you have an exception ask @deads2k + "ClusterMonitoringConfig", + // never add to this list, if you think you have an exception ask @deads2k + "DNSNameResolver", + // never add to this list, if you think you have an exception ask @deads2k + "EtcdBackendQuota", + // never add to this list, if you think you have an exception ask @deads2k + "Example", + // never add to this list, if you think you have an exception ask @deads2k + "Example2", + // never add to this list, if you think you have an exception ask @deads2k + "GCPClusterHostedDNS", + // never add to this list, if you think you have an exception ask @deads2k + "GatewayAPI", + // never add to this list, if you think you have an exception ask @deads2k + "HardwareSpeed", + // never add to this list, if you think you have an exception ask @deads2k + "ImageStreamImportMode", + // never add to this list, if you think you have an exception ask @deads2k + "IngressControllerDynamicConfigurationManager", + // never add to this list, if you think you have an exception ask @deads2k + "IngressControllerLBSubnetsAWS", + // never add to this list, if you think you have an exception ask @deads2k + "InsightsConfig", + // never add to this list, if you think you have an exception ask @deads2k + "InsightsConfigAPI", + // never add to this list, if you think you have an exception ask @deads2k + "InsightsOnDemandDataGather", + // never add to this list, if you think you have an exception ask @deads2k + "InsightsRuntimeExtractor", + // never add to this list, if you think you have an exception ask @deads2k + "KMSv1", + // never add to this list, if you think you have an exception ask @deads2k + "MachineAPIMigration", + // never add to this list, if you think you have an exception ask @deads2k + "MachineAPIOperatorDisableMachineHealthCheckController", + // never add to this list, if you think you have an exception ask @deads2k + "MachineAPIProviderOpenStack", + // never add to this list, if you think you have an exception ask @deads2k + "MachineConfigNodes", + // never add to this list, if you think you have an exception ask @deads2k + "ManagedBootImages", + // never add to this list, if you think you have an exception ask @deads2k + "ManagedBootImagesAWS", + // never add to this list, if you think you have an exception ask @deads2k + "MetricsCollectionProfiles", + // never add to this list, if you think you have an exception ask @deads2k + "MixedCPUsAllocation", + // never add to this list, if you think you have an exception ask @deads2k + "MultiArchInstallAWS", + // never add to this list, if you think you have an exception ask @deads2k + "MultiArchInstallAzure", + // never add to this list, if you think you have an exception ask @deads2k + "MultiArchInstallGCP", + // never add to this list, if you think you have an exception ask @deads2k + "NetworkDiagnosticsConfig", + // never add to this list, if you think you have an exception ask @deads2k + "NetworkLiveMigration", + // never add to this list, if you think you have an exception ask @deads2k + "NetworkSegmentation", + // never add to this list, if you think you have an exception ask @deads2k + "NewOLM", + // never add to this list, if you think you have an exception ask @deads2k + "OVNObservability", + // never add to this list, if you think you have an exception ask @deads2k + "PersistentIPsForVirtualization", + // never add to this list, if you think you have an exception ask @deads2k + "PinnedImages", + // never add to this list, if you think you have an exception ask @deads2k + "PrivateHostedZoneAWS", + // never add to this list, if you think you have an exception ask @deads2k + "RouteAdvertisements", + // never add to this list, if you think you have an exception ask @deads2k + "RouteExternalCertificate", + // never add to this list, if you think you have an exception ask @deads2k + "SetEIPForNLBIngressController", + // never add to this list, if you think you have an exception ask @deads2k + "SignatureStores", + // never add to this list, if you think you have an exception ask @deads2k + "SigstoreImageVerification", + // never add to this list, if you think you have an exception ask @deads2k + "UpgradeStatus", + // never add to this list, if you think you have an exception ask @deads2k + "VSphereControlPlaneMachineSet", + // never add to this list, if you think you have an exception ask @deads2k + "VSphereDriverConfiguration", + // never add to this list, if you think you have an exception ask @deads2k + "VSphereMultiNetworks", + // never add to this list, if you think you have an exception ask @deads2k + "VSphereMultiVCenters", + // never add to this list, if you think you have an exception ask @deads2k + "VSphereStaticIPs", +) diff --git a/etcd/vendor/github.com/openshift/api/features/util.go b/etcd/vendor/github.com/openshift/api/features/util.go new file mode 100644 index 0000000000..59bb7bff40 --- /dev/null +++ b/etcd/vendor/github.com/openshift/api/features/util.go @@ -0,0 +1,224 @@ +package features + +import ( + "fmt" + configv1 "github.com/openshift/api/config/v1" + "net/url" + "strings" +) + +// FeatureGateDescription is a golang-only interface used to contains details for a feature gate. +type FeatureGateDescription struct { + // FeatureGateAttributes is the information that appears in the API + FeatureGateAttributes configv1.FeatureGateAttributes + + // OwningJiraComponent is the jira component that owns most of the impl and first assignment for the bug. + // This is the team that owns the feature long term. + OwningJiraComponent string + // ResponsiblePerson is the person who is on the hook for first contact. This is often, but not always, a team lead. + // It is someone who can make the promise on the behalf of the team. + ResponsiblePerson string + // OwningProduct is the product that owns the lifecycle of the gate. + OwningProduct OwningProduct + // EnhancementPR is the PR for the enhancement. + EnhancementPR string +} + +type FeatureGateEnabledDisabled struct { + Enabled []FeatureGateDescription + Disabled []FeatureGateDescription +} + +type ClusterProfileName string + +var ( + Hypershift = ClusterProfileName("include.release.openshift.io/ibm-cloud-managed") + SelfManaged = ClusterProfileName("include.release.openshift.io/self-managed-high-availability") + AllClusterProfiles = []ClusterProfileName{Hypershift, SelfManaged} +) + +type OwningProduct string + +var ( + ocpSpecific = OwningProduct("OCP") + kubernetes = OwningProduct("Kubernetes") +) + +type featureGateBuilder struct { + name string + owningJiraComponent string + responsiblePerson string + owningProduct OwningProduct + enhancementPRURL string + + statusByClusterProfileByFeatureSet map[ClusterProfileName]map[configv1.FeatureSet]bool +} + +const ( + legacyFeatureGateWithoutEnhancement = "FeatureGate predates 4.18" +) + +// newFeatureGate featuregate are disabled in every FeatureSet and selectively enabled +func newFeatureGate(name string) *featureGateBuilder { + b := &featureGateBuilder{ + name: name, + statusByClusterProfileByFeatureSet: map[ClusterProfileName]map[configv1.FeatureSet]bool{}, + } + for _, clusterProfile := range AllClusterProfiles { + byFeatureSet := map[configv1.FeatureSet]bool{} + for _, featureSet := range configv1.AllFixedFeatureSets { + byFeatureSet[featureSet] = false + } + b.statusByClusterProfileByFeatureSet[clusterProfile] = byFeatureSet + } + return b +} + +func (b *featureGateBuilder) reportProblemsToJiraComponent(owningJiraComponent string) *featureGateBuilder { + b.owningJiraComponent = owningJiraComponent + return b +} + +func (b *featureGateBuilder) contactPerson(responsiblePerson string) *featureGateBuilder { + b.responsiblePerson = responsiblePerson + return b +} + +func (b *featureGateBuilder) productScope(owningProduct OwningProduct) *featureGateBuilder { + b.owningProduct = owningProduct + return b +} + +func (b *featureGateBuilder) enhancementPR(url string) *featureGateBuilder { + b.enhancementPRURL = url + return b +} + +func (b *featureGateBuilder) enableIn(featureSets ...configv1.FeatureSet) *featureGateBuilder { + for clusterProfile := range b.statusByClusterProfileByFeatureSet { + for _, featureSet := range featureSets { + b.statusByClusterProfileByFeatureSet[clusterProfile][featureSet] = true + } + } + return b +} + +func (b *featureGateBuilder) enableForClusterProfile(clusterProfile ClusterProfileName, featureSets ...configv1.FeatureSet) *featureGateBuilder { + for _, featureSet := range featureSets { + b.statusByClusterProfileByFeatureSet[clusterProfile][featureSet] = true + } + return b +} + +func (b *featureGateBuilder) register() (configv1.FeatureGateName, error) { + if len(b.name) == 0 { + return "", fmt.Errorf("missing name") + } + if len(b.owningJiraComponent) == 0 { + return "", fmt.Errorf("missing owningJiraComponent") + } + if len(b.responsiblePerson) == 0 { + return "", fmt.Errorf("missing responsiblePerson") + } + if len(b.owningProduct) == 0 { + return "", fmt.Errorf("missing owningProduct") + } + _, enhancementPRErr := url.Parse(b.enhancementPRURL) + switch { + case b.enhancementPRURL == legacyFeatureGateWithoutEnhancement: + if !legacyFeatureGates.Has(b.name) { + return "", fmt.Errorf("FeatureGate/%s is a new feature gate, not an existing one. It must have an enhancementPR with GA Graduation Criteria like https://github.com/openshift/enhancements/pull/#### or https://github.com/kubernetes/enhancements/issues/####", b.name) + } + + case len(b.enhancementPRURL) == 0: + return "", fmt.Errorf("FeatureGate/%s is missing an enhancementPR with GA Graduation Criteria like https://github.com/openshift/enhancements/pull/#### or https://github.com/kubernetes/enhancements/issues/####", b.name) + + case !strings.HasPrefix(b.enhancementPRURL, "https://github.com/openshift/enhancements/pull/") && !strings.HasPrefix(b.enhancementPRURL, "https://github.com/kubernetes/enhancements/issues/"): + return "", fmt.Errorf("FeatureGate/%s enhancementPR format is incorrect; must be like https://github.com/openshift/enhancements/pull/#### or https://github.com/kubernetes/enhancements/issues/####", b.name) + + case enhancementPRErr != nil: + return "", fmt.Errorf("FeatureGate/%s is enhancementPR is invalid: %w", b.name, enhancementPRErr) + } + + featureGateName := configv1.FeatureGateName(b.name) + description := FeatureGateDescription{ + FeatureGateAttributes: configv1.FeatureGateAttributes{ + Name: featureGateName, + }, + OwningJiraComponent: b.owningJiraComponent, + ResponsiblePerson: b.responsiblePerson, + OwningProduct: b.owningProduct, + EnhancementPR: b.enhancementPRURL, + } + + // statusByClusterProfileByFeatureSet is initialized by constructor to be false for every combination + for clusterProfile, byFeatureSet := range b.statusByClusterProfileByFeatureSet { + for featureSet, enabled := range byFeatureSet { + if _, ok := allFeatureGates[clusterProfile]; !ok { + allFeatureGates[clusterProfile] = map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} + } + if _, ok := allFeatureGates[clusterProfile][featureSet]; !ok { + allFeatureGates[clusterProfile][featureSet] = &FeatureGateEnabledDisabled{} + } + + if enabled { + allFeatureGates[clusterProfile][featureSet].Enabled = append(allFeatureGates[clusterProfile][featureSet].Enabled, description) + } else { + allFeatureGates[clusterProfile][featureSet].Disabled = append(allFeatureGates[clusterProfile][featureSet].Disabled, description) + } + } + } + + return featureGateName, nil +} + +func (b *featureGateBuilder) mustRegister() configv1.FeatureGateName { + ret, err := b.register() + if err != nil { + panic(err) + } + return ret +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FeatureGateEnabledDisabled) DeepCopyInto(out *FeatureGateEnabledDisabled) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = make([]FeatureGateDescription, len(*in)) + copy(*out, *in) + } + if in.Disabled != nil { + in, out := &in.Disabled, &out.Disabled + *out = make([]FeatureGateDescription, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateEnabledDisabled. +func (in *FeatureGateEnabledDisabled) DeepCopy() *FeatureGateEnabledDisabled { + if in == nil { + return nil + } + out := new(FeatureGateEnabledDisabled) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FeatureGateDescription) DeepCopyInto(out *FeatureGateDescription) { + *out = *in + out.FeatureGateAttributes = in.FeatureGateAttributes + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateDescription. +func (in *FeatureGateDescription) DeepCopy() *FeatureGateDescription { + if in == nil { + return nil + } + out := new(FeatureGateDescription) + in.DeepCopyInto(out) + return out +} diff --git a/etcd/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go b/etcd/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go index 2799904482..53c71aabb6 100644 --- a/etcd/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go +++ b/etcd/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go @@ -81,7 +81,6 @@ const ( CinderCSIDriver CSIDriverName = "cinder.csi.openstack.org" VSphereCSIDriver CSIDriverName = "csi.vsphere.vmware.com" ManilaCSIDriver CSIDriverName = "manila.csi.openstack.org" - OvirtCSIDriver CSIDriverName = "csi.ovirt.org" KubevirtCSIDriver CSIDriverName = "csi.kubevirt.io" SharedResourcesCSIDriver CSIDriverName = "csi.sharedresource.openshift.io" AlibabaDiskCSIDriver CSIDriverName = "diskplugin.csi.alibabacloud.com" diff --git a/etcd/vendor/github.com/openshift/api/operator/v1/types_ingress.go b/etcd/vendor/github.com/openshift/api/operator/v1/types_ingress.go index 2dac08f099..46b906518d 100644 --- a/etcd/vendor/github.com/openshift/api/operator/v1/types_ingress.go +++ b/etcd/vendor/github.com/openshift/api/operator/v1/types_ingress.go @@ -35,6 +35,7 @@ import ( // // Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). // +openshift:compatibility-gen:level=1 +// +kubebuilder:validation:XValidation:rule="!has(self.spec.domain) || size('router-' + self.metadata.name + '.' + self.spec.domain) <= 253",message="The combined 'router-' + metadata.name + '.' + .spec.domain cannot exceed 253 characters" type IngressController struct { metav1.TypeMeta `json:",inline"` @@ -68,6 +69,22 @@ type IngressControllerSpec struct { // // If empty, defaults to ingress.config.openshift.io/cluster .spec.domain. // + // The domain value must be a valid DNS name. It must consist of lowercase + // alphanumeric characters, '-' or '.', and each label must start and end + // with an alphanumeric character and not exceed 63 characters. Maximum + // length of a valid DNS domain is 253 characters. + // + // The implementation may add a prefix such as "router-default." to the domain + // when constructing the router canonical hostname. To ensure the resulting + // hostname does not exceed the DNS maximum length of 253 characters, + // the domain length is additionally validated at the IngressController object + // level. For the maximum length of the domain value itself, the shortest + // possible variant of the prefix and the ingress controller name was considered + // for example "router-a." + // + // +kubebuilder:validation:MaxLength=244 + // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="domain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character" + // +kubebuilder:validation:XValidation:rule="self.split('.').all(label, size(label) <= 63)",message="each DNS label must not exceed 63 characters" // +optional Domain string `json:"domain,omitempty"` diff --git a/etcd/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go b/etcd/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go index 483d9720da..d3475d9024 100644 --- a/etcd/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go +++ b/etcd/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go @@ -1063,7 +1063,7 @@ func (IngressControllerSetHTTPHeader) SwaggerDoc() map[string]string { var map_IngressControllerSpec = map[string]string{ "": "IngressControllerSpec is the specification of the desired behavior of the IngressController.", - "domain": "domain is a DNS name serviced by the ingress controller and is used to configure multiple features:\n\n* For the LoadBalancerService endpoint publishing strategy, domain is\n used to configure DNS records. See endpointPublishingStrategy.\n\n* When using a generated default certificate, the certificate will be valid\n for domain and its subdomains. See defaultCertificate.\n\n* The value is published to individual Route statuses so that end-users\n know where to target external DNS records.\n\ndomain must be unique among all IngressControllers, and cannot be updated.\n\nIf empty, defaults to ingress.config.openshift.io/cluster .spec.domain.", + "domain": "domain is a DNS name serviced by the ingress controller and is used to configure multiple features:\n\n* For the LoadBalancerService endpoint publishing strategy, domain is\n used to configure DNS records. See endpointPublishingStrategy.\n\n* When using a generated default certificate, the certificate will be valid\n for domain and its subdomains. See defaultCertificate.\n\n* The value is published to individual Route statuses so that end-users\n know where to target external DNS records.\n\ndomain must be unique among all IngressControllers, and cannot be updated.\n\nIf empty, defaults to ingress.config.openshift.io/cluster .spec.domain.\n\nThe domain value must be a valid DNS name. It must consist of lowercase alphanumeric characters, '-' or '.', and each label must start and end with an alphanumeric character and not exceed 63 characters. Maximum length of a valid DNS domain is 253 characters.\n\nThe implementation may add a prefix such as \"router-default.\" to the domain when constructing the router canonical hostname. To ensure the resulting hostname does not exceed the DNS maximum length of 253 characters, the domain length is additionally validated at the IngressController object level. For the maximum length of the domain value itself, the shortest possible variant of the prefix and the ingress controller name was considered for example \"router-a.\"", "httpErrorCodePages": "httpErrorCodePages specifies a configmap with custom error pages. The administrator must create this configmap in the openshift-config namespace. This configmap should have keys in the format \"error-page-.http\", where is an HTTP error code. For example, \"error-page-503.http\" defines an error page for HTTP 503 responses. Currently only error pages for 503 and 404 responses can be customized. Each value in the configmap should be the full response, including HTTP headers. Eg- https://raw.githubusercontent.com/openshift/router/fadab45747a9b30cc3f0a4b41ad2871f95827a93/images/router/haproxy/conf/error-page-503.http If this field is empty, the ingress controller uses the default error pages.", "replicas": "replicas is the desired number of ingress controller replicas. If unset, the default depends on the value of the defaultPlacement field in the cluster config.openshift.io/v1/ingresses status.\n\nThe value of replicas is set based on the value of a chosen field in the Infrastructure CR. If defaultPlacement is set to ControlPlane, the chosen field will be controlPlaneTopology. If it is set to Workers the chosen field will be infrastructureTopology. Replicas will then be set to 1 or 2 based whether the chosen field's value is SingleReplica or HighlyAvailable, respectively.\n\nThese defaults are subject to change.", "endpointPublishingStrategy": "endpointPublishingStrategy is used to publish the ingress controller endpoints to other networks, enable load balancer integrations, etc.\n\nIf unset, the default is based on infrastructure.config.openshift.io/cluster .status.platform:\n\n AWS: LoadBalancerService (with External scope)\n Azure: LoadBalancerService (with External scope)\n GCP: LoadBalancerService (with External scope)\n IBMCloud: LoadBalancerService (with External scope)\n AlibabaCloud: LoadBalancerService (with External scope)\n Libvirt: HostNetwork\n\nAny other platform types (including None) default to HostNetwork.\n\nendpointPublishingStrategy cannot be updated.", diff --git a/etcd/vendor/github.com/openshift/microshift/pkg/config/apiserver.go b/etcd/vendor/github.com/openshift/microshift/pkg/config/apiserver.go index 621950d391..cea5eb3be6 100644 --- a/etcd/vendor/github.com/openshift/microshift/pkg/config/apiserver.go +++ b/etcd/vendor/github.com/openshift/microshift/pkg/config/apiserver.go @@ -2,10 +2,14 @@ package config import ( "fmt" + "reflect" "slices" configv1 "github.com/openshift/api/config/v1" + featuresUtils "github.com/openshift/api/features" "github.com/openshift/library-go/pkg/crypto" + + "k8s.io/apimachinery/pkg/util/sets" ) type ApiServer struct { @@ -27,6 +31,8 @@ type ApiServer struct { TLS TLSConfig `json:"tls"` + FeatureGates FeatureGates `json:"featureGates"` + // The URL and Port of the API server cannot be changed by the user. URL string `json:"-"` Port int `json:"-"` @@ -127,3 +133,99 @@ func (t *TLSConfig) Validate() error { func getIANACipherSuites(suites []string) []string { return crypto.OpenSSLToIANACipherSuites(suites) } + +const ( + FeatureSetCustomNoUpgrade = "CustomNoUpgrade" + FeatureSetTechPreviewNoUpgrade = "TechPreviewNoUpgrade" + FeatureSetDevPreviewNoUpgrade = "DevPreviewNoUpgrade" +) + +type CustomNoUpgrade struct { + Enabled []string `json:"enabled"` + Disabled []string `json:"disabled"` +} + +// RequiredFeatureGates are the feature gates that are always enabled by MicroShift. They are defined here to enable config validation. +// They are injected into the feature-gates field later by the microshift kube-apiserver controller. +var RequiredFeatureGates = []string{"UserNamespacesSupport", "UserNamespacesPodSecurityStandards"} + +type FeatureGates struct { + FeatureSet string `json:"featureSet"` + CustomNoUpgrade CustomNoUpgrade `json:"customNoUpgrade"` +} + +func (fg FeatureGates) ToApiserverArgs() ([]string, error) { + ret := sets.NewString() + + switch fg.FeatureSet { + case FeatureSetCustomNoUpgrade: + for _, feature := range fg.CustomNoUpgrade.Enabled { + ret.Insert(fmt.Sprintf("%s=true", feature)) + } + for _, feature := range fg.CustomNoUpgrade.Disabled { + ret.Insert(fmt.Sprintf("%s=false", feature)) + } + case FeatureSetDevPreviewNoUpgrade, FeatureSetTechPreviewNoUpgrade: + fgEnabledDisabled, err := featuresUtils.FeatureSets(featuresUtils.SelfManaged, configv1.FeatureSet(fg.FeatureSet)) + if err != nil { + return nil, fmt.Errorf("failed to get feature set gates: %w", err) + } + for _, f := range fgEnabledDisabled.Enabled { + ret.Insert(fmt.Sprintf("%s=true", f.FeatureGateAttributes.Name)) + } + for _, f := range fgEnabledDisabled.Disabled { + ret.Insert(fmt.Sprintf("%s=false", f.FeatureGateAttributes.Name)) + } + } + return ret.List(), nil +} + +// Implement the GoStringer interface for better %#v printing +func (fg FeatureGates) GoString() string { + return fmt.Sprintf("FeatureGates{FeatureSet: %q, CustomNoUpgrade: %#v}", fg.FeatureSet, fg.CustomNoUpgrade) +} + +func (fg *FeatureGates) validateFeatureGates() error { + // FG is unset + if fg == nil || reflect.DeepEqual(*fg, FeatureGates{}) { + return nil + } + // Must use a recognized feature set, or else empty + if fg.FeatureSet != "" && fg.FeatureSet != FeatureSetCustomNoUpgrade && fg.FeatureSet != FeatureSetTechPreviewNoUpgrade && fg.FeatureSet != FeatureSetDevPreviewNoUpgrade { + return fmt.Errorf("invalid feature set: %s", fg.FeatureSet) + } + // Must set FeatureSet to CustomNoUpgrade to use custom feature gates + if fg.FeatureSet != FeatureSetCustomNoUpgrade && (len(fg.CustomNoUpgrade.Enabled) > 0 || len(fg.CustomNoUpgrade.Disabled) > 0) { + return fmt.Errorf("CustomNoUpgrade must be empty when FeatureSet is empty") + } + // Must set CustomNoUpgrade enabled or disabled lists when FeatureSet is CustomNoUpgrade + if fg.FeatureSet == FeatureSetCustomNoUpgrade && len(fg.CustomNoUpgrade.Enabled) == 0 && len(fg.CustomNoUpgrade.Disabled) == 0 { + return fmt.Errorf("CustomNoUpgrade enabled or disabled lists must be set when FeatureSet is CustomNoUpgrade") + } + + var errs = make(sets.Set[error], 0) + for _, requiredFG := range RequiredFeatureGates { + // Edge case: Users must not be allowed to explicitly disable required feature gates. + if sets.NewString(fg.CustomNoUpgrade.Disabled...).Has(requiredFG) { + errs.Insert(fmt.Errorf("required feature gate %s cannot be disabled: %s", requiredFG, fg.CustomNoUpgrade.Disabled)) + } + // Edge case: Users must not be allowed to explicitly enable required feature gates or else the config would be locked and the cluster + // would not be able to be upgraded. + if sets.New(fg.CustomNoUpgrade.Enabled...).Has(requiredFG) { + errs.Insert(fmt.Errorf("feature gate %s is explicitly enabled and cannot be enabled by the user", requiredFG)) + } + } + if errs.Len() > 0 { + return fmt.Errorf("invalid feature gates: %s", errs.UnsortedList()) + } + + // Must not have any feature gates that are enabled and disabled at the same time + enabledSet := sets.New(fg.CustomNoUpgrade.Enabled...) + disabledSet := sets.New(fg.CustomNoUpgrade.Disabled...) + inBothSets := enabledSet.Intersection(disabledSet) + if inBothSets.Len() > 0 { + return fmt.Errorf("featuregates cannot be enabled and disabled at the same time: %s", inBothSets.UnsortedList()) + } + + return nil +} diff --git a/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go b/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go index e02b0ade79..9313a048f6 100644 --- a/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go +++ b/etcd/vendor/github.com/openshift/microshift/pkg/config/config.go @@ -56,7 +56,6 @@ type Config struct { Ingress IngressConfig `json:"ingress"` Storage Storage `json:"storage"` Telemetry Telemetry `json:"telemetry"` - // Settings specified in this section are transferred as-is into the Kubelet config. // +kubebuilder:validation:Schemaless Kubelet map[string]any `json:"kubelet"` @@ -424,6 +423,15 @@ func (c *Config) incorporateUserSettings(u *Config) { c.DNS.Hosts.File = u.DNS.Hosts.File } } + if u.ApiServer.FeatureGates.FeatureSet != "" { + c.ApiServer.FeatureGates.FeatureSet = u.ApiServer.FeatureGates.FeatureSet + } + if len(u.ApiServer.FeatureGates.CustomNoUpgrade.Enabled) > 0 { + c.ApiServer.FeatureGates.CustomNoUpgrade.Enabled = u.ApiServer.FeatureGates.CustomNoUpgrade.Enabled + } + if len(u.ApiServer.FeatureGates.CustomNoUpgrade.Disabled) > 0 { + c.ApiServer.FeatureGates.CustomNoUpgrade.Disabled = u.ApiServer.FeatureGates.CustomNoUpgrade.Disabled + } } // updateComputedValues examins the existing settings and converts any @@ -653,6 +661,10 @@ func (c *Config) validate() error { return fmt.Errorf("error validating Generic Device Plugin configuration: %v", err) } + if err := c.ApiServer.FeatureGates.validateFeatureGates(); err != nil { + return fmt.Errorf("error validating feature gates: %v", err) + } + if err := c.DNS.validate(); err != nil { return fmt.Errorf("error validating DNS: %v", err) } diff --git a/etcd/vendor/github.com/openshift/microshift/pkg/util/net.go b/etcd/vendor/github.com/openshift/microshift/pkg/util/net.go index 690ba82e8f..ba5c111c95 100644 --- a/etcd/vendor/github.com/openshift/microshift/pkg/util/net.go +++ b/etcd/vendor/github.com/openshift/microshift/pkg/util/net.go @@ -106,7 +106,7 @@ func RetryGet(ctx context.Context, url, additionalCAPath string) int { } } status := 0 - err = wait.PollUntilContextTimeout(ctx, 5*time.Second, 120*time.Second, false, func(ctx context.Context) (bool, error) { + err = wait.PollUntilContextTimeout(ctx, time.Second, 120*time.Second, true, func(ctx context.Context) (bool, error) { c := http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ @@ -133,8 +133,8 @@ func RetryGet(ctx context.Context, url, additionalCAPath string) int { func RetryTCPConnection(ctx context.Context, host string, port string) bool { status := false - err := wait.PollUntilContextTimeout(ctx, 5*time.Second, 120*time.Second, false, func(ctx context.Context) (bool, error) { - timeout := 30 * time.Second + err := wait.PollUntilContextTimeout(ctx, time.Second, 120*time.Second, true, func(ctx context.Context) (bool, error) { + timeout := time.Second _, err := tcpnet.DialTimeout("tcp", tcpnet.JoinHostPort(host, port), timeout) if err == nil { diff --git a/etcd/vendor/k8s.io/utils/net/multi_listen.go b/etcd/vendor/k8s.io/utils/net/multi_listen.go index 7cb7795bec..e5d508055d 100644 --- a/etcd/vendor/k8s.io/utils/net/multi_listen.go +++ b/etcd/vendor/k8s.io/utils/net/multi_listen.go @@ -21,6 +21,7 @@ import ( "fmt" "net" "sync" + "sync/atomic" ) // connErrPair pairs conn and error which is returned by accept on sub-listeners. @@ -38,6 +39,7 @@ type multiListener struct { connCh chan connErrPair // stopCh communicates from parent to child listeners. stopCh chan struct{} + closed atomic.Bool } // compile time check to ensure *multiListener implements net.Listener @@ -150,10 +152,8 @@ func (ml *multiListener) Accept() (net.Conn, error) { // the go-routines to exit. func (ml *multiListener) Close() error { // Make sure this can be called repeatedly without explosions. - select { - case <-ml.stopCh: + if !ml.closed.CompareAndSwap(false, true) { return fmt.Errorf("use of closed network connection") - default: } // Tell all sub-listeners to stop. diff --git a/etcd/vendor/modules.txt b/etcd/vendor/modules.txt index 5706ec9199..5a18ad16dd 100644 --- a/etcd/vendor/modules.txt +++ b/etcd/vendor/modules.txt @@ -177,11 +177,12 @@ github.com/mxk/go-flowrate/flowrate # github.com/oklog/run v1.2.0 ## explicit; go 1.20 github.com/oklog/run -# github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 +# github.com/openshift/api v0.0.0-20251117165054-348370f055bf ## explicit; go 1.24.0 github.com/openshift/api/config/v1 +github.com/openshift/api/features github.com/openshift/api/operator/v1 -# github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c +# github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af ## explicit; go 1.22.0 github.com/openshift/build-machinery-go github.com/openshift/build-machinery-go/make @@ -191,7 +192,7 @@ github.com/openshift/build-machinery-go/make/targets/golang github.com/openshift/build-machinery-go/make/targets/openshift github.com/openshift/build-machinery-go/make/targets/openshift/operator github.com/openshift/build-machinery-go/scripts -# github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5 +# github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f ## explicit; go 1.24.0 github.com/openshift/library-go/pkg/crypto github.com/openshift/library-go/pkg/operator/apiserver/audit @@ -988,7 +989,7 @@ k8s.io/kubectl/pkg/validation # k8s.io/kubelet v1.34.1 => ../deps/github.com/openshift/kubernetes/staging/src/k8s.io/kubelet ## explicit; go 1.24.0 k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1 -# k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 +# k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 ## explicit; go 1.18 k8s.io/utils/clock k8s.io/utils/exec diff --git a/go.mod b/go.mod index f092359b10..210e4b6ded 100644 --- a/go.mod +++ b/go.mod @@ -7,10 +7,10 @@ require ( github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // openshift-controller-manager github.com/google/go-cmp v0.7.0 github.com/miekg/dns v1.1.63 // microshift - github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 - github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c + github.com/openshift/api v0.0.0-20251117165054-348370f055bf + github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235 - github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5 + github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f github.com/pkg/errors v0.9.1 // indirect github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.10 @@ -31,7 +31,7 @@ require ( github.com/go-kit/kit v0.9.0 github.com/gogo/protobuf v1.3.2 github.com/golang/snappy v0.0.4 - github.com/openshift/cluster-policy-controller v0.0.0-20251007100337-ef703966fe6e + github.com/openshift/cluster-policy-controller v0.0.0-20251120141414-8b775487512f github.com/openshift/route-controller-manager v0.0.0-20251106134803-8a69194a461d github.com/prometheus/client_model v0.6.2 github.com/prometheus/common v0.66.1 @@ -49,7 +49,7 @@ require ( k8s.io/kube-aggregator v1.34.1 k8s.io/kubectl v1.34.1 k8s.io/kubelet v1.34.1 - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/kube-storage-version-migrator v0.0.6-0.20230721195810-5c8923c5ff96 sigs.k8s.io/kustomize/api v0.20.1 sigs.k8s.io/kustomize/kyaml v0.20.1 @@ -217,7 +217,7 @@ require ( google.golang.org/protobuf v1.36.8 // indirect k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect k8s.io/klog/v2 v2.130.1 - k8s.io/kubernetes v1.34.1 + k8s.io/kubernetes v1.34.2 ) replace ( diff --git a/go.sum b/go.sum index 5aa4dc708e..7af9b7cf11 100644 --- a/go.sum +++ b/go.sum @@ -269,20 +269,20 @@ github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.11.1 h1:nHFvthhM0qY8/m+vfhJylliSshm8G1jJ2jDMcgULaH8= github.com/opencontainers/selinux v1.11.1/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= -github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 h1:Ot2fbEEPmF3WlPQkyEW/bUCV38GMugH/UmZvxpWceNc= -github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY= +github.com/openshift/api v0.0.0-20251117165054-348370f055bf h1:8VzLlQFneh4bnHA3SS+Bb9VWdVaR7WugtSeqIngMC3s= +github.com/openshift/api v0.0.0-20251117165054-348370f055bf/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY= github.com/openshift/apiserver-library-go v0.0.0-20251015164739-79d04067059d h1:Mfya3RxHWvidOrKyHj3bmFn5x2B89DLZIvDAhwm+C2s= github.com/openshift/apiserver-library-go v0.0.0-20251015164739-79d04067059d/go.mod h1:zm2/rIUp0p83pz0/1kkSoKTqhTr3uUKSKQ9fP7Z3g7Y= -github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c h1:gJvhduWIrpzoUTwrJjjeul+hGETKkhRhEZosBg/X3Hg= -github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE= +github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af h1:UiYYMi/CCV+kwWrXuXfuUSOY2yNXOpWpNVgHc6aLQlE= +github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af/go.mod h1:8jcm8UPtg2mCAsxfqKil1xrmRMI3a+XU2TZ9fF8A7TE= github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235 h1:9JBeIXmnHlpXTQPi7LPmu1jdxznBhAE7bb1K+3D8gxY= github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235/go.mod h1:L49W6pfrZkfOE5iC1PqEkuLkXG4W0BX4w8b+L2Bv7fM= -github.com/openshift/cluster-policy-controller v0.0.0-20251007100337-ef703966fe6e h1:ys/6s5dhaXP/QgBnB6xON3yhhbV4dbBHvzV75uvqvoE= -github.com/openshift/cluster-policy-controller v0.0.0-20251007100337-ef703966fe6e/go.mod h1:977DPepMAwnGNdJQdAzVSL+Qpem/aLS9d9sGnt1yEsg= +github.com/openshift/cluster-policy-controller v0.0.0-20251120141414-8b775487512f h1:qL/G4RbBeYWNBeZ8XIhB6MAOh1rld7HWUAue22l0cw8= +github.com/openshift/cluster-policy-controller v0.0.0-20251120141414-8b775487512f/go.mod h1:LXi/198uMe/91uydJ/yHz+jS66JCP1DtSonVDFhVVPs= github.com/openshift/kubernetes-kube-storage-version-migrator v0.0.3-0.20251007192956-ce5ff17e9a81 h1:Zrt/uXU77g4M1hMF4jgAvZiCOR2dEFeWECeA/gHW1CE= github.com/openshift/kubernetes-kube-storage-version-migrator v0.0.3-0.20251007192956-ce5ff17e9a81/go.mod h1:o5cKv/pQ+exEYKq97WapNa5cxSPxuwBezHZHNW5RNRo= -github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5 h1:bANtDc8SgetSK4nQehf59x3+H9FqVJCprgjs49/OTg0= -github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5/go.mod h1:OlFFws1AO51uzfc48MsStGE4SFMWlMZD0+f5a/zCtKI= +github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f h1:r1pLosA7z3+t+lzW29FU54sg4/pAWu+lsKD0L5Gx3wg= +github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f/go.mod h1:ErDfiIrPHH+menTP/B4LKd0nxFDdvCbTamAc6SWMIh8= github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20251001123353-fd5b1fb35db1 h1:PMTgifBcBRLJJiM+LgSzPDTk9/Rx4qS09OUrfpY6GBQ= github.com/openshift/onsi-ginkgo/v2 v2.6.1-0.20251001123353-fd5b1fb35db1/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/openshift/route-controller-manager v0.0.0-20251106134803-8a69194a461d h1:nKdsySfewGYK5ALohGfHS7GAs0x2Sq/5B4s0WxreUXE= @@ -501,8 +501,8 @@ k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBb k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= diff --git a/packaging/crio.conf.d/10-microshift_amd64.conf b/packaging/crio.conf.d/10-microshift_amd64.conf index 6e61080bb4..adf66751fc 100644 --- a/packaging/crio.conf.d/10-microshift_amd64.conf +++ b/packaging/crio.conf.d/10-microshift_amd64.conf @@ -2,6 +2,6 @@ # for community builds on top of OKD, this setting has no effect [crio.image] global_auth_file="/etc/crio/openshift-pull-secret" -pause_image = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6499a5b1ee439bc35a56c1064c92369131f20df24505be5f7870a26b7186d6fd" +pause_image = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:a0a33d3936721b7272b752563fdc38d3cf3624aa39d15b4bc942dd8fc981f4f6" pause_image_auth_file = "/etc/crio/openshift-pull-secret" pause_command = "/usr/bin/pod" diff --git a/packaging/crio.conf.d/10-microshift_arm64.conf b/packaging/crio.conf.d/10-microshift_arm64.conf index 70d59bfc11..ad37b065df 100644 --- a/packaging/crio.conf.d/10-microshift_arm64.conf +++ b/packaging/crio.conf.d/10-microshift_arm64.conf @@ -2,6 +2,6 @@ # for community builds on top of OKD, this setting has no effect [crio.image] global_auth_file="/etc/crio/openshift-pull-secret" -pause_image = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d159bcafff0cf386cb11935a05c1fa42fcc3dd9e5d2b845fed45752ce3420ac0" +pause_image = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:abf84909350a6b52e1f9ce0a232d47ba3f4e54d5f1897d5f90a537af7b67b36a" pause_image_auth_file = "/etc/crio/openshift-pull-secret" pause_command = "/usr/bin/pod" diff --git a/pkg/assets/apps.go b/pkg/assets/apps.go index a80d027823..a4d4671356 100644 --- a/pkg/assets/apps.go +++ b/pkg/assets/apps.go @@ -52,7 +52,10 @@ func (d *dpApplier) Read(objBytes []byte, render RenderFunc, params RenderParams } func (d *dpApplier) Handle(ctx context.Context) error { - _, _, err := resourceapply.ApplyDeployment(ctx, d.Client, assetsEventRecorder, d.dp, 0) + obj, _, err := resourceapply.ApplyDeployment(ctx, d.Client, assetsEventRecorder, d.dp, 0) + if err != nil { + klog.ErrorS(err, "Failed to apply deployment asset", "actual", obj, "new", d.dp) + } return err } diff --git a/pkg/assets/crd.go b/pkg/assets/crd.go index a1a6de874d..beb2cfb14d 100644 --- a/pkg/assets/crd.go +++ b/pkg/assets/crd.go @@ -25,7 +25,7 @@ import ( ) const ( - customResourceReadyInterval = 5 * time.Second + customResourceReadyInterval = time.Second customResourceReadyTimeout = 10 * time.Minute ) diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index abbbd1f6f7..c41fb9a0c0 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -839,6 +839,17 @@ func TestValidate(t *testing.T) { }(), expectErr: true, }, + { + name: "feature-gates-custom-no-upgrade-with-empty-enabled-and-disabled-lists", + config: func() *Config { + c := mkDefaultConfig() + c.ApiServer.FeatureGates.FeatureSet = "CustomNoUpgrade" + c.ApiServer.FeatureGates.CustomNoUpgrade.Enabled = []string{} + c.ApiServer.FeatureGates.CustomNoUpgrade.Disabled = []string{} + return c + }(), + expectErr: true, + }, { name: "feature-gates-custom-no-upgrade-enabled-and-disabled-have-same-feature-gate", config: func() *Config { diff --git a/pkg/controllers/etcd.go b/pkg/controllers/etcd.go index e5631c6173..038702c2b4 100644 --- a/pkg/controllers/etcd.go +++ b/pkg/controllers/etcd.go @@ -241,8 +241,9 @@ func getEtcdClient(ctx context.Context) (*clientv3.Client, error) { } cli, err := clientv3.New(clientv3.Config{ - Endpoints: []string{"https://localhost:2379"}, - DialTimeout: 5 * time.Second, + Endpoints: []string{"https://localhost:2379"}, + // Connecting to localhost allows for a really short timeout to bail out quickly and retry again. + DialTimeout: 100 * time.Millisecond, TLS: tlsConfig, Context: ctx, }) diff --git a/pkg/controllers/hostswatcher.go b/pkg/controllers/hostswatcher.go index 432246108e..f666cd3e90 100644 --- a/pkg/controllers/hostswatcher.go +++ b/pkg/controllers/hostswatcher.go @@ -11,6 +11,7 @@ import ( "github.com/fsnotify/fsnotify" "github.com/openshift/microshift/pkg/config" corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" @@ -44,6 +45,14 @@ func (s *HostsWatcherManager) Run(ctx context.Context, ready chan<- struct{}, st if s.status != config.HostsStatusEnabled { klog.Infof("%s is disabled (not configured)", s.Name()) + // Delete ConfigMap if it exists when service is disabled + if kubeClient, err := s.createKubeClient(); err == nil { + if err := s.deleteConfigMap(ctx, kubeClient); err != nil { + klog.Warningf("%s failed to delete ConfigMap when disabled: %v", s.Name(), err) + } + } else { + klog.Warningf("%s could not create Kubernetes client to delete ConfigMap: %v", s.Name(), err) + } defer close(ready) return ctx.Err() } @@ -254,3 +263,18 @@ func (s *HostsWatcherManager) getFileHash(filePath string) (string, error) { hash := sha256.Sum256(content) return fmt.Sprintf("%x", hash), nil } + +func (s *HostsWatcherManager) deleteConfigMap(ctx context.Context, client kubernetes.Interface) error { + configMapsClient := client.CoreV1().ConfigMaps(targetNameSpace) + err := configMapsClient.Delete(ctx, configMapName, metav1.DeleteOptions{}) + if err != nil { + // If ConfigMap doesn't exist, that's fine - it's already deleted + if apierrors.IsNotFound(err) { + klog.V(2).Infof("%s ConfigMap %s in namespace %s does not exist, nothing to delete", s.Name(), configMapName, targetNameSpace) + return nil + } + return fmt.Errorf("failed to delete ConfigMap: %w", err) + } + klog.Infof("%s deleted ConfigMap %s in namespace %s", s.Name(), configMapName, targetNameSpace) + return nil +} diff --git a/pkg/controllers/kube-apiserver.go b/pkg/controllers/kube-apiserver.go index c2fbdda09c..70cb89dcdc 100644 --- a/pkg/controllers/kube-apiserver.go +++ b/pkg/controllers/kube-apiserver.go @@ -333,24 +333,24 @@ func (s *KubeAPIServer) Run(ctx context.Context, ready chan<- struct{}, stopped ctx, cancel := context.WithCancel(ctx) defer cancel() + restConfig, err := clientcmd.BuildConfigFromFlags(s.masterURL, "") + if err != nil { + return err + } + if err := rest.SetKubernetesDefaults(restConfig); err != nil { + return err + } + restConfig.NegotiatedSerializer = serializer.NewCodecFactory(runtime.NewScheme()) + restConfig.CAFile = s.servingCAPath + + restClient, err := rest.UnversionedRESTClientFor(restConfig) + if err != nil { + return err + } + // run readiness check go func() { err := wait.PollUntilContextTimeout(ctx, time.Second, kubeAPIStartupTimeout*time.Second, true, func(ctx context.Context) (bool, error) { - restConfig, err := clientcmd.BuildConfigFromFlags(s.masterURL, "") - if err != nil { - return false, err - } - if err := rest.SetKubernetesDefaults(restConfig); err != nil { - return false, err - } - restConfig.NegotiatedSerializer = serializer.NewCodecFactory(runtime.NewScheme()) - restConfig.CAFile = s.servingCAPath - - restClient, err := rest.UnversionedRESTClientFor(restConfig) - if err != nil { - return false, err - } - var status int if err := restClient.Get().AbsPath("/readyz").Do(ctx).StatusCode(&status).Error(); err != nil { klog.Infof("%q not yet ready: %v", s.Name(), err) diff --git a/pkg/util/net.go b/pkg/util/net.go index 690ba82e8f..ba5c111c95 100644 --- a/pkg/util/net.go +++ b/pkg/util/net.go @@ -106,7 +106,7 @@ func RetryGet(ctx context.Context, url, additionalCAPath string) int { } } status := 0 - err = wait.PollUntilContextTimeout(ctx, 5*time.Second, 120*time.Second, false, func(ctx context.Context) (bool, error) { + err = wait.PollUntilContextTimeout(ctx, time.Second, 120*time.Second, true, func(ctx context.Context) (bool, error) { c := http.Client{ Transport: &http.Transport{ TLSClientConfig: &tls.Config{ @@ -133,8 +133,8 @@ func RetryGet(ctx context.Context, url, additionalCAPath string) int { func RetryTCPConnection(ctx context.Context, host string, port string) bool { status := false - err := wait.PollUntilContextTimeout(ctx, 5*time.Second, 120*time.Second, false, func(ctx context.Context) (bool, error) { - timeout := 30 * time.Second + err := wait.PollUntilContextTimeout(ctx, time.Second, 120*time.Second, true, func(ctx context.Context) (bool, error) { + timeout := time.Second _, err := tcpnet.DialTimeout("tcp", tcpnet.JoinHostPort(host, port), timeout) if err == nil { diff --git a/scripts/auto-rebase/changelog.txt b/scripts/auto-rebase/changelog.txt index 260b80b150..fb43958b4a 100644 --- a/scripts/auto-rebase/changelog.txt +++ b/scripts/auto-rebase/changelog.txt @@ -1,3527 +1,579 @@ -- api embedded-component 50e2ece149d768a1b1eadae3a5f07134dda7b2ce to 6711368ea523ea381dafeed164584cb78a7cd129 - - 919765e5 2025-11-12T08:06:02-05:00 Promoted VSphereMixedNodeEnv to TechPreview +- oc image-arm64 8642d882f16de34a033ac4ac19dfde866c7a523f to 02aba637a54c5d1317b5c284e213d7a85d64d6bb + - d5726146 2025-11-26T10:43:34+03:00 Unify ErrAlreadyExists to correctly match + - 9e2ba3c1 2025-11-26T10:11:55+03:00 Update documentation of oc adm must-gather timeout flag -- cluster-csi-snapshot-controller-operator embedded-component 5ed05a14763717ccd1e3a1073a9e3b59bfe157e0 to 588e532f520b71a0ce995a48f38294b9c4bb1e26 - - af1974c 2025-11-14T13:38:49-05:00 Revert "Merge pull request #255 from tchap/userns-operand" - - 4fef8e9 2025-11-13T16:37:00+01:00 assets: Use restricted-v3 scc for the deployments - - 1c374b8 2025-11-13T16:35:29+01:00 assets: Fix various manifest issues +- coredns image-arm64 91ae57f91e0bba5fc4fdb816e1f1cea633b3a8b5 to 7486e9e4330c1e41d9a91e4673b7f2782efc112c + - 0fa99d9 2025-11-24T17:41:15-05:00 UPSTREAM: : openshift: vendor deps + track vendor tree + - 8f57c4f 2025-11-24T17:41:11-05:00 UPSTREAM: : openshift: document vendor tree ignore rules + - b06f0e0 2025-11-24T17:41:05-05:00 UPSTREAM: : openshift: add ocp_dnsnameresolver plugin + - a38f2c9 2025-11-24T17:41:01-05:00 UPSTREAM: : openshift: keep make test target for ci-operator + - 1457b2e 2025-11-24T17:40:57-05:00 UPSTREAM: : openshift: pin Go toolchain to 1.24.6 + - 551de3c 2025-11-24T17:40:52-05:00 UPSTREAM: : openshift: disable dependabot + - 9908fdc 2025-11-24T17:40:46-05:00 UPSTREAM: : openshift: document downstream OWNERS metadata + - b4f5b8e 2025-11-24T17:40:42-05:00 UPSTREAM: : openshift: restore automation metadata + - 1db4568 2025-10-08T08:26:37-07:00 Bump version to 1.13.1 (#7599) + - 3ccbd6a 2025-10-08T08:26:18-07:00 Bump golang to 1.25.2 and golang.org/x/net to v0.45.0 (#7598) + - 84722ab 2025-10-06T18:04:47-07:00 build(deps): bump google.golang.org/api from 0.250.0 to 0.251.0 (#7596) + - a36db64 2025-10-06T18:04:37-07:00 build(deps): bump actions/stale from 10.0.0 to 10.1.0 (#7593) + - b2a6ca0 2025-10-06T11:19:52-07:00 build(deps): bump github.com/quic-go/quic-go from 0.54.1 to 0.55.0 (#7595) + - 600098f 2025-10-06T11:19:37-07:00 build(deps): bump softprops/action-gh-release from 2.3.3 to 2.3.4 (#7597) + - 0e6535b 2025-10-06T11:18:54-07:00 build(deps): bump github/codeql-action from 3.30.5 to 3.30.6 (#7594) + - 0578a2a 2025-10-06T11:18:35-07:00 build(deps): bump google.golang.org/protobuf from 1.36.9 to 1.36.10 (#7592) + - d23f735 2025-10-06T16:48:54+03:00 build(deps): bump ossf/scorecard-action from 2.4.2 to 2.4.3 (#7591) + - 6676e61 2025-10-06T00:06:28-07:00 fix(sign): reject invalid UTF‑8 dbfile token (#7589) + - 625f6c9 2025-10-06T00:05:58-07:00 perf: avoid string concatenation in loops (#7572) + - 51f94b0 2025-09-30T12:46:15-07:00 Bump version 1.13.0 (#7587) + - 9a57d96 2025-09-30T09:36:13-07:00 fix(caddyfile): infinite loop on unclosed braces (#7571) + - 83ce0ba 2025-09-30T09:35:32-07:00 plugin/nomad: Add a Nomad plugin (#7467) + - bc6e015 2025-09-29T21:51:42-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7580) + - 294532a 2025-09-29T19:35:13-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7578) + - 107fb3c 2025-09-29T17:21:24-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7577) + - 7e31e2a 2025-09-29T17:21:00-07:00 build(deps): bump actions/dependency-review-action from 4.7.3 to 4.8.0 (#7588) + - f6e2fa4 2025-09-29T14:59:17-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds (#7584) + - 87d46e6 2025-09-29T14:48:32-07:00 build(deps): bump github.com/quic-go/quic-go from 0.54.0 to 0.54.1 (#7579) + - 8d8caf3 2025-09-29T14:36:33-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7585) + - c565c39 2025-09-29T14:23:05-07:00 build(deps): bump google.golang.org/api from 0.249.0 to 0.250.0 (#7586) + - 8743541 2025-09-29T20:59:47+03:00 build(deps): bump docker/login-action from 3.5.0 to 3.6.0 (#7581) + - 3d6f793 2025-09-29T20:59:32+03:00 build(deps): bump github/codeql-action from 3.30.3 to 3.30.5 (#7583) + - 70fb03f 2025-09-28T19:49:47-07:00 fix(file): fix data race in tree Elem.Name (#7574) + - eafc352 2025-09-27T06:34:03-07:00 dnsserver: Rely on dns.Server.ShutdownContext to gracefully stop (#7517) + - a1dfc2c 2025-09-22T07:33:23-07:00 build(deps): bump the go-etcd-io group with 2 updates (#7570) + - 31e2859 2025-09-21T22:44:36-07:00 plugin/loop: avoid panic on invalid server block (#7568) + - 0d05791 2025-09-21T08:17:35-07:00 lint: enable nakedret (#7569) + - dd029c9 2025-09-20T16:33:00-07:00 chore: bump coredns/caddy dependency to latest (#7567) + - 6ec3278 2025-09-19T04:01:53-07:00 fix: prevent SIGTERM/reload deadlock (#7562) + - 5532ba8 2025-09-19T03:59:37-07:00 fix(plugin): prevent panic when ListenHosts is empty (#7565) + - 051d8d6 2025-09-18T19:15:40-07:00 fix(plugin): normalize panics on invalid origins (#7563) + - 0440e54 2025-09-18T19:14:51-07:00 fix(dnstap): add bounds for plugin args (#7557) + - 3c950b8 2025-09-15T14:28:26-07:00 fix(forward): deflake TestFailover (#7558) + - 55b4e9f 2025-09-15T14:27:45-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7552) + - e574453 2025-09-15T11:30:54-07:00 build(deps): bump google.golang.org/protobuf from 1.36.8 to 1.36.9 (#7545) + - 09e2d95 2025-09-15T11:30:35-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7554) + - d95caaf 2025-09-15T11:11:40-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds (#7546) + - 71c45af 2025-09-15T11:11:19-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7547) + - e3b1a56 2025-09-15T11:10:49-07:00 build(deps): bump google.golang.org/grpc from 1.75.0 to 1.75.1 (#7550) + - f786bea 2025-09-15T10:21:56-07:00 build(deps): bump the k8s-io group with 3 updates (#7555) + - bf0a29c 2025-09-15T10:17:46-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7544) + - a30954e 2025-09-15T10:17:35-07:00 test(view): improve test coverage (#7543) + - c916cf4 2025-09-15T10:17:06-07:00 fix(plugin): nilness findings (#7556) + - 4073862 2025-09-15T10:16:35-07:00 build(deps): bump google.golang.org/api from 0.248.0 to 0.249.0 (#7551) + - 3bdd8de 2025-09-15T17:37:12+03:00 build(deps): bump golang.org/x/crypto from 0.41.0 to 0.42.0 (#7553) + - 4dd6c6b 2025-09-15T17:30:24+03:00 build(deps): bump github/codeql-action from 3.30.1 to 3.30.3 (#7549) + - ba7d5ff 2025-09-13T15:15:25-07:00 test(metrics): improve test coverage (#7538) + - a72a14d 2025-09-13T15:14:59-07:00 test(presubmit): prevent panic in TestImportOrdering on split import (#7540) + - c149567 2025-09-13T15:14:10-07:00 fix: lint issues from plugin/forward and plugin/pkg/dnstest (#7539) + - 9683de0 2025-09-12T14:45:01-07:00 fix: No failover to next upstream when receiving SERVFAIL or REFUSED response codes(#7457) (#7458) + - 155f451 2025-09-12T14:43:56-07:00 test(grpc): add fuzzer (#7513) + - 8817d8f 2025-09-12T08:21:33+03:00 fix(grpc): enforce DNS message size limits (#7490) + - 39abf5a 2025-09-10T13:08:27-07:00 chore(lint): modernize Go (#7536) + - afdd41a 2025-09-10T13:07:57-07:00 chore: bump Go version to 1.25.1 (#7535) + - a667374 2025-09-09T23:08:29-07:00 Update prometheus version (#7533) + - c90e703 2025-09-09T19:06:44-07:00 dnsserver.Server: Export timeout values (#7497) + - d2e0e6a 2025-09-09T14:30:27-07:00 chore(docs): remove extra whitespace from readmes (#7532) + - f323295 2025-09-08T06:47:41-07:00 build(deps): bump github/codeql-action from 3.30.0 to 3.30.1 (#7528) + - 3fc046f 2025-09-08T06:47:19-07:00 build(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 (#7525) + - 1b35ba1 2025-09-08T06:47:03-07:00 build(deps): bump softprops/action-gh-release from 2.3.2 to 2.3.3 (#7527) + - 8f76d6f 2025-09-08T06:46:52-07:00 build(deps): bump actions/stale from 9.1.0 to 10.0.0 (#7526) + - ddc1878 2025-09-08T06:46:41-07:00 build(deps): bump actions/setup-go from 5.5.0 to 6.0.0 (#7524) + - f74bf9c 2025-09-08T06:46:30-07:00 build(deps): bump aquasecurity/trivy-action from 0.33.0 to 0.33.1 (#7523) + - cbc32d2 2025-09-08T06:46:06-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7521) + - 51d59e5 2025-09-08T06:45:54-07:00 build(deps): bump golang.org/x/sys from 0.35.0 to 0.36.0 (#7520) + - a62ef5d 2025-09-08T06:45:22-07:00 build(deps): bump github.com/DataDog/dd-trace-go/v2 from 2.2.2 to 2.2.3 (#7519) + - 96819ed 2025-09-08T06:44:56-07:00 Update note and versioon for 1.12.4 release (#7518) + - 0dd76bd 2025-09-05T13:13:11-07:00 fix(transfer): goroutine leak on axfr err (#7516) + - 8c2cfb0 2025-09-05T11:45:30-07:00 plugin/etcd: fix import order for ttl test (#7515) + - 0d24fc4 2025-09-05T11:44:17-07:00 Add note about chronological order of adopters (#7498) + - e1768a5 2025-09-04T17:14:27-07:00 Merge commit from fork + - 066e516 2025-09-03T16:24:44-07:00 fix(grpc): check proxy list length in policies (#7512) + - abef207 2025-09-02T14:33:16-07:00 fix(https): propagate HTTP request context (#7491) + - 3f868e5 2025-09-02T14:32:11-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7501) + - 83a546e 2025-09-02T14:31:59-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7502) + - 1ea6a7f 2025-09-02T13:46:47-07:00 fix(plugin): guard nil lookups across plugins (#7494) + - 254e95e 2025-09-02T13:46:10-07:00 build(deps): bump the k8s-io group with 2 updates (#7503) + - 734d696 2025-09-02T13:42:08-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7506) + - ecdff70 2025-09-02T00:41:06-07:00 lint: add missing prealloc to backend lookup test (#7510) + - ca9894b 2025-09-02T08:49:24+03:00 build(deps): bump aquasecurity/trivy-action from 0.32.0 to 0.33.0 (#7507) + - 257da16 2025-09-02T08:46:37+03:00 build(deps): bump github/codeql-action from 3.29.11 to 3.30.0 (#7509) + - b1b4cb8 2025-09-02T08:45:59+03:00 build(deps): bump actions/dependency-review-action from 4.7.2 to 4.7.3 (#7508) + - 21176fb 2025-09-01T18:09:51-07:00 fix(grpc): span leak on error attempt (#7487) + - 06586b0 2025-09-01T18:08:09-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7500) + - c1392c7 2025-09-01T18:07:58-07:00 build(deps): bump sigs.k8s.io/mcs-api from 0.2.0 to 0.3.0 (#7499) + - 5424d9d 2025-09-01T18:06:31-07:00 test(plugin): improve backend lookup coverage (#7496) + - 359632a 2025-09-01T18:05:15-07:00 lint: enable prealloc (#7493) + - 4d3061a 2025-09-01T18:04:35-07:00 lint: enable durationcheck (#7492) + - 5ec2796 2025-08-31T20:08:15+03:00 Add Sophotech to adopters list (#7495) + - 89fb505 2025-08-29T05:27:11-07:00 plugin: Use %w to wrap user error (#7489) + - 5a6700c 2025-08-28T20:03:55-07:00 fix(metrics): add timeouts to metrics HTTP server (#7469) + - c38c2ca 2025-08-26T09:41:55-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7474) + - 8189b21 2025-08-26T09:41:47-07:00 build(deps): bump google.golang.org/protobuf from 1.36.7 to 1.36.8 (#7475) + - b17f64b 2025-08-26T09:41:40-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7482) + - ea54017 2025-08-26T06:44:30-07:00 build(deps): bump google.golang.org/api from 0.247.0 to 0.248.0 (#7477) + - ad7c1a7 2025-08-26T06:44:14-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7476) + - 55ba782 2025-08-25T21:18:34-07:00 build(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 (#7484) + - 9be6f86 2025-08-25T21:18:05-07:00 build(deps): bump google.golang.org/grpc from 1.74.2 to 1.75.0 (#7478) + - 4217d9e 2025-08-25T21:17:55-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7481) + - a112c25 2025-08-25T21:17:45-07:00 build(deps): bump actions/dependency-review-action from 4.7.1 to 4.7.2 (#7485) + - e767b0c 2025-08-26T07:14:12+03:00 build(deps): bump github/codeql-action from 3.29.10 to 3.29.11 (#7483) + - 9f7cc58 2025-08-25T13:08:21-07:00 chore(ci): restrict token permissions (#7470) + - 5720d3c 2025-08-25T13:08:04-07:00 chore(ci): pin workflow dependencies (#7471) + - 2f981ff 2025-08-25T13:06:44-07:00 fix(forward): use netip package for parsing (#7472) + - f4ab4d9 2025-08-25T13:06:19-07:00 test(plugin): improve test coverage for pprof (#7473) + - d69dbd3 2025-08-21T11:21:04-07:00 build(deps): bump github.com/go-viper/mapstructure/v2 (#7468) + - 2c99f62 2025-08-20T16:02:41-07:00 plugin/file: fix label offset problem in ClosestEncloser (#7465) + - 2b273d4 2025-08-20T16:00:21-07:00 feat(trace): migrate dd-trace-go v1 to v2 (#7466) + - 43d9683 2025-08-19T22:00:04+03:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7459) + - dbb0553 2025-08-19T21:32:23+03:00 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7462) + - 45af263 2025-08-19T21:29:15+03:00 build(deps): bump google.golang.org/api from 0.246.0 to 0.247.0 (#7460) + - 0edecc4 2025-08-18T22:13:43+03:00 build(deps): bump github/codeql-action from 3.29.8 to 3.29.10 (#7464) + - de6f29d 2025-08-18T22:02:09+03:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.74.3 to 1.74.5 (#7461) + - aec7a9e 2025-08-18T21:58:08+03:00 build(deps): bump github.com/expr-lang/expr from 1.17.5 to 1.17.6 (#7463) + - afd2eab 2025-08-15T17:23:32-07:00 build(deps): bump the k8s-io group with 3 updates (#7270) + - 41a0b70 2025-08-15T11:20:54-07:00 chore(deps): upgrade Go requirement to 1.24.0 (#7456) + - 9562db7 2025-08-12T19:20:14-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7450) + - b06b52d 2025-08-12T19:20:04-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds (#7447) + - e358bdf 2025-08-12T17:47:39-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.36.6 to 1.37.2 (#7444) + - 5d69e35 2025-08-12T17:47:22-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7451) + - 9bb1e68 2025-08-12T07:32:46+03:00 build(deps): bump actions/checkout from 4.2.2 to 5.0.0 (#7443) + - ddfe5c1 2025-08-12T07:13:45+03:00 build(deps): bump github/codeql-action from 3.29.3 to 3.29.8 (#7442) + - 9d35f91 2025-08-12T06:54:04+03:00 build(deps): bump google.golang.org/protobuf from 1.36.6 to 1.36.7 (#7445) + - bdde4f0 2025-08-12T06:48:22+03:00 build(deps): bump docker/login-action from 3.4.0 to 3.5.0 (#7455) + - 14d14ef 2025-08-11T13:28:46-07:00 build(deps): bump google.golang.org/api from 0.243.0 to 0.246.0 (#7454) + - 8b197fe 2025-08-11T13:27:15-07:00 build(deps): bump golang.org/x/crypto from 0.40.0 to 0.41.0 (#7448) + - c9873f5 2025-08-11T13:11:46-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7440) + - 80f0d83 2025-08-11T13:11:37-07:00 build(deps): bump github.com/miekg/dns from 1.1.67 to 1.1.68 (#7446) + - a21e077 2025-08-11T13:11:17-07:00 build(deps): bump the go-etcd-io group with 2 updates (#7449) + - 6ad4c30 2025-08-11T13:11:09-07:00 build(deps): bump github.com/prometheus/client_golang (#7452) + - dc07622 2025-08-11T13:11:00-07:00 build(deps): bump golang.org/x/sys from 0.34.0 to 0.35.0 (#7453) + - b916b55 2025-08-11T11:13:24-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/credentials (#7441) + - 1e7131c 2025-08-11T11:07:24-07:00 build(deps): bump google.golang.org/grpc from 1.73.0 to 1.74.2 (#7439) + - bc0467d 2025-08-11T11:07:09-07:00 test(multisocket): deflake restart by using a fresh port and coordinated cleanup (#7438) + - fff3939 2025-08-09T11:34:29+03:00 chore: update Go version to 1.24.6 (#7437) + - 712a505 2025-08-08T15:38:41-07:00 plugin/header: Remove deprecated syntax (#7436) + - 52639bc 2025-08-05T11:34:38-07:00 plugin/loadbalance: support prefer option (#7433) + - dc8f3b0 2025-08-05T11:34:20-07:00 Improve caddy.GracefulServer conformance checks (#7416) + - 463fd1c 2025-08-05T09:32:55-07:00 Update for upcoming 1.12.3 (#7434) + - a538813 2025-08-04T16:54:18-07:00 chore: Minor changes to `Dockerfile` (#7428) + - 1025a19 2025-08-04T16:53:40-07:00 Properly create hostname from IPv6 (#7431) + - 17020f0 2025-08-04T16:53:19-07:00 Bump version to 1.12.3 (#7429) + - 6ba4392 2025-07-28T12:06:26-07:00 fix: handle cached connection closure in forward plugin (#7427) + - 2c2b075 2025-07-28T12:04:53-07:00 refactor: use slices.Equal to simplify code (#7426) + - 1a30dd9 2025-07-22T15:17:24-07:00 build(deps): bump google.golang.org/api from 0.241.0 to 0.242.0 (#7420) + - 11c7318 2025-07-22T15:17:16-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7422) + - ea953aa 2025-07-22T12:24:29-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7424) + - 0024dae 2025-07-21T13:57:28-07:00 build(deps): bump github.com/quic-go/quic-go from 0.53.0 to 0.54.0 (#7423) + - 39ab813 2025-07-21T13:56:43-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7417) + - 6924697 2025-07-21T18:50:41+03:00 build(deps): bump github/codeql-action from 3.29.2 to 3.29.3 (#7425) + - 1981f22 2025-07-15T05:11:25-07:00 plugin/test: fix TXT record comparison for multi-chunk vs multiple records (#7413) + - d593204 2025-07-14T22:48:29-07:00 build(deps): bump github.com/miekg/dns from 1.1.66 to 1.1.67 (#7406) + - 741e177 2025-07-14T19:35:15-07:00 build(deps): bump the go-etcd-io group with 2 updates (#7411) + - 1e87f43 2025-07-14T19:35:03-07:00 build(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 (#7412) + - 222cf2c 2025-07-14T19:16:48-07:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.74.2 to 1.74.3 (#7409) + - 52d0f83 2025-07-14T19:16:36-07:00 build(deps): bump google.golang.org/api from 0.240.0 to 0.241.0 (#7408) + - aaeb09d 2025-07-14T18:58:32-07:00 build(deps): bump github.com/oschwald/geoip2-golang (#7407) + - e90db8e 2025-07-14T18:57:36-07:00 build(deps): bump github.com/quic-go/quic-go from 0.52.0 to 0.53.0 (#7392) + - d8906ce 2025-07-14T18:56:59-07:00 plugin/file: preserve case in SRV record names and targets per RFC 6763 (#7402) + - ff88ad3 2025-07-14T08:39:10+02:00 chore: bump Go to 1.24.5 (#7405) + - d129a8a 2025-07-07T09:22:02-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/route53 (#7399) + - 56e6e60 2025-07-07T09:21:38-07:00 build(deps): bump google.golang.org/api from 0.239.0 to 0.240.0 (#7400) + - a929d10 2025-07-07T09:21:18-07:00 build(deps): bump aquasecurity/trivy-action from 0.31.0 to 0.32.0 (#7401) + - 0aee758 2025-07-04T02:39:19-07:00 fix(auto/file): return REFUSED when no next plugin is available (#7381) + - 1449cb6 2025-07-03T02:19:21-07:00 Port to AWS Go SDK v2 (#6588) + - ae5e03a 2025-07-02T19:39:46-07:00 fix(cache): data race when refreshing cached messages (#7398) + - 19b6b3c 2025-07-02T19:39:25-07:00 build(deps): bump sigs.k8s.io/mcs-api (#7385) + - 06da7dc 2025-07-02T19:20:47-07:00 fix(cache): data race when updating the TTL of cached messages (#7397) + - e34fda5 2025-07-01T12:29:42+03:00 build(deps): bump github.com/prometheus/common from 0.64.0 to 0.65.0 (#7386) + - 0dd3f51 2025-07-01T12:28:23+03:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7388) + - 1f8cb27 2025-07-01T06:30:32+03:00 build(deps): bump google.golang.org/api from 0.236.0 to 0.239.0 (#7393) + - dc26a95 2025-07-01T06:28:44+03:00 build(deps): bump github.com/go-viper/mapstructure/v2 (#7389) + - 45256de 2025-07-01T06:06:24+03:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.74.0 to 1.74.2 (#7394) + - 14cb5ba 2025-07-01T05:57:14+03:00 build(deps): bump github/codeql-action from 3.29.0 to 3.29.2 (#7395) + - 8fce345 2025-06-28T08:46:21+03:00 chore: fix docs incompatibility (#7390) + - b2a2a5f 2025-06-19T17:49:37-04:00 plugin/rewrite: Add EDNS0 Unset Action (#7380) + - 9c51e17 2025-06-18T21:58:08+03:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7378) + - 869af9a 2025-06-18T21:33:17+03:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7377) + - eb06749 2025-06-17T21:18:57+03:00 build(deps): bump softprops/action-gh-release from 2.2.2 to 2.3.2 (#7375) + - 289e897 2025-06-16T17:37:52+03:00 build(deps): bump github/codeql-action from 3.28.19 to 3.29.0 (#7376) + - ab74d3a 2025-06-11T11:22:07-07:00 add args: startup_timeout for kubernetes plugin (#7068) + - cbb318f 2025-06-09T17:16:50-07:00 build(deps): bump the go-etcd-io group with 2 updates (#7363) + - 12681b2 2025-06-09T17:16:31-07:00 build(deps): bump google.golang.org/api from 0.235.0 to 0.236.0 (#7364) + - 2492e18 2025-06-09T16:00:07-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7366) + - cd8de12 2025-06-09T15:57:11-07:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.73.1 to 1.74.0 (#7368) + - 7f025c3 2025-06-09T15:56:55-07:00 build(deps): bump github/codeql-action from 3.28.18 to 3.28.19 (#7371) + - 4f5c904 2025-06-09T08:15:36-07:00 build(deps): bump github.com/expr-lang/expr from 1.17.4 to 1.17.5 (#7369) + - cd18d99 2025-06-09T08:15:16-07:00 build(deps): bump aquasecurity/trivy-action from 0.30.0 to 0.31.0 (#7370) + - 571b251 2025-06-09T08:14:45-07:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7365) + - 79e59d5 2025-06-09T08:14:29-07:00 build(deps): bump google.golang.org/grpc from 1.72.2 to 1.73.0 (#7367) + - 02f33e7 2025-06-09T08:14:13-07:00 build(deps): bump golang.org/x/crypto from 0.38.0 to 0.39.0 (#7362) + - 27273a3 2025-06-06T05:14:41-07:00 [plugin/cache] create a copy of a response to ensure original data is never modified (#7357) + - 6cba588 2025-06-06T04:58:17-07:00 Add support for fallthrough to the grpc plugin (#7359) + - 0eb5542 2025-06-05T15:57:35-07:00 Update Go (#7356) + - 83afff1 2025-06-05T18:20:24+02:00 view: Add IPv6 example match (#7355) + - 67f3ece 2025-06-05T13:47:52+02:00 chore: enable more rules from revive (#7352) + - 186e4a1 2025-06-05T10:10:58+03:00 chore: enable early-return and superfluous-else from revive (#7129) + - ddb74cd 2025-06-04T14:37:52-07:00 test(plugin): improve tests for auto (#7348) + - 11774d9 2025-06-04T14:36:59-07:00 fix(proxy): flaky dial tests (#7349) + - 9f9aed3 2025-06-04T14:36:04-07:00 test: add t.Helper() calls to test helper functions (#7351) + - b4abdca 2025-06-04T06:31:41+03:00 fix(kubernetes): multicluster DNS race condition (#7350) + - 9240544 2025-06-02T10:01:18-07:00 build(deps): bump google.golang.org/api from 0.234.0 to 0.235.0 (#7345) + - 3655ac9 2025-06-02T08:01:52-07:00 build(deps): bump github.com/go-logr/logr from 1.4.2 to 1.4.3 (#7344) + - ed0bfc6 2025-06-02T08:01:40-07:00 build(deps): bump github.com/expr-lang/expr from 1.17.3 to 1.17.4 (#7343) + - 2e94bb9 2025-06-02T17:18:32+03:00 build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 (#7342) + - 8cac83d 2025-06-01T16:30:41-07:00 lint: enable wastedassign linter (#7340) + - bb33ab5 2025-06-01T16:30:01-07:00 test(plugin): add tests for any (#7341) + - ad5a00b 2025-05-31T05:32:20-07:00 Actually invoke make release -f Makefile.release during test (#7338) + - b083914 2025-05-30T16:38:48-07:00 Keep golang to 1.24.2 due to build issues in 1.24.3 (#7337) + - 53e9681 2025-05-30T15:29:32-07:00 lint: enable protogetter linter (#7336) + - 7ecb501 2025-05-29T07:09:19-07:00 Update version to 1.12.2 (#7334) + - a61d8b3 2025-05-29T07:19:04+03:00 lint: enable nolintlint linter (#7332) + - 384fa32 2025-05-29T04:41:27+03:00 fix: missing intrange lint fix (#7333) + - 60227bd 2025-05-28T17:58:01-07:00 perf(kubernetes): optimize AutoPath slice allocation (#7323) + - 19a6ae4 2025-05-28T17:50:55-07:00 lint: enable intrange linter (#7331) + - b3acbe5 2025-05-28T17:34:16-07:00 feat(plugin/file): fallthrough (#7327) + - bebb7bc 2025-05-28T17:33:07-07:00 lint: enable canonicalheader linter (#7330) + - 0a48523 2025-05-28T06:58:48-07:00 fix(proxy): avoid Dial hang after Transport stopped (#7321) + - 5857ad1 2025-05-28T06:57:46-07:00 Update golang version to 1.24.3 (#7329) + - 8cd0c63 2025-05-27T17:49:13-07:00 test(plugin): add tests for pkg/rand (#7320) + - 92a6bc2 2025-05-27T17:37:58-07:00 test(dnsserver): add unit tests for gRPC and QUIC servers (#7319) + - 7bd43af 2025-05-27T14:44:20-07:00 fix: loop variable capture and linter (#7328) + - 481b795 2025-05-27T10:48:59-07:00 build(deps): bump google.golang.org/api from 0.233.0 to 0.234.0 (#7325) + - eeb1663 2025-05-27T10:02:55-07:00 lint: enable usetesting linter (#7322) + - 43ec317 2025-05-27T10:00:56-07:00 build(deps): bump github.com/quic-go/quic-go from 0.51.0 to 0.52.0 (#7324) + - 792d382 2025-05-27T09:56:52-07:00 build(deps): bump google.golang.org/grpc from 1.72.1 to 1.72.2 (#7326) + - 1948b6e 2025-05-23T09:23:14-07:00 test: skip certain network-specific tests on non-Linux (#7318) + - a070d22 2025-05-22T06:40:13-07:00 test(dnsserver): improve core/dnsserver test coverage (#7317) + - 32ea433 2025-05-22T06:38:22-07:00 fix(metrics): preserve request size from plugins (#7313) + - 528cc26 2025-05-22T06:37:55-07:00 fix: ensure DNS query name reset in plugin.NS error path (#7142) + - 8232355 2025-05-20T21:02:52-07:00 feat: enable plugins via environment during build (#7310) + - 1de92ec 2025-05-20T06:07:46-07:00 fix(plugin/bind): remove zone for link-local IPv4 (#7295) + - 7045098 2025-05-19T16:49:40-07:00 build(deps): bump the go-etcd-io group with 2 updates (#7302) + - 2f9f309 2025-05-19T14:23:58-04:00 test(request): improve coverage across package (#7307) + - 93ec38a 2025-05-19T14:23:36-04:00 test(coremain): Add unit tests (#7308) + - ef1cedc 2025-05-19T21:10:49+03:00 ci(test-e2e): add Go version setup to workflow (#7309) + - 3073344 2025-05-19T08:01:26-07:00 build(deps): bump google.golang.org/grpc from 1.72.0 to 1.72.1 (#7304) + - c33c7b7 2025-05-19T08:01:13-07:00 build(deps): bump codecov/codecov-action from 5.4.2 to 5.4.3 (#7299) + - 5c74efc 2025-05-19T07:43:29-07:00 build(deps): bump actions/dependency-review-action from 4.7.0 to 4.7.1 (#7301) + - 49f72b9 2025-05-19T07:43:15-07:00 build(deps): bump github/codeql-action from 3.28.17 to 3.28.18 (#7300) + - 14ef526 2025-05-19T07:42:59-07:00 build(deps): bump github.com/expr-lang/expr from 1.17.2 to 1.17.3 (#7303) + - e6d9458 2025-05-19T06:59:58-07:00 build(deps): bump google.golang.org/api from 0.232.0 to 0.233.0 (#7305) + - f698792 2025-05-19T06:59:44-07:00 build(deps): bump github.com/prometheus/common from 0.63.0 to 0.64.0 (#7306) + - 5c71bd0 2025-05-18T22:58:16-07:00 kubernetes: add multicluster support (#7266) + - 76b199f 2025-05-18T22:53:21-07:00 chore: Add new maintainer thevilledev (#7298) + - 677ced3 2025-05-18T21:20:31-07:00 build(deps): bump golangci/golangci-lint-action from 7.0.0 to 8.0.0 (#7280) + - bc983d2 2025-05-18T17:49:58-07:00 Update golangci-lint (#7294) + - efaed02 2025-05-18T17:49:21-07:00 feat: limit concurrent DoQ streams and goroutines (#7296) + - 7391755 2025-05-17T20:25:15-07:00 docs: add man page for multisocket plugin (#7297) + - 17eb2ee 2025-05-14T13:48:13+02:00 Prepare for the k8s api upgrade (#7293) + - 85ee6b8 2025-05-13T15:37:59+02:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.72.2 to 1.73.0 (#7288) + - 401d782 2025-05-13T15:20:11+02:00 build(deps): bump google.golang.org/api from 0.229.0 to 0.232.0 (#7287) + - e4b7b5c 2025-05-13T15:19:43+02:00 build(deps): bump github.com/quic-go/quic-go from 0.50.1 to 0.51.0 (#7265) + - b5c150f 2025-05-13T15:19:07+02:00 build(deps): bump github/codeql-action from 3.28.15 to 3.28.17 (#7281) + - 8de2450 2025-05-13T15:18:36+02:00 build(deps): bump github.com/aws/aws-sdk-go from 1.55.6 to 1.55.7 (#7272) + - d76363d 2025-05-13T14:59:01+02:00 build(deps): bump github.com/miekg/dns from 1.1.65 to 1.1.66 (#7290) + - 94c7619 2025-05-13T14:58:35+02:00 build(deps): bump golang.org/x/crypto from 0.37.0 to 0.38.0 (#7291) + - 25d3193 2025-05-13T14:58:10+02:00 build(deps): bump actions/dependency-review-action from 4.6.0 to 4.7.0 (#7289) + - 5282bcc 2025-05-13T14:57:45+02:00 build(deps): bump actions/setup-go from 5.4.0 to 5.5.0 (#7286) + - 13da7f7 2025-05-01T10:59:15-04:00 fix(rewrite): truncated upstream response (#7277) + - abb0a52 2025-04-25T13:52:59-04:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7253) + - c8038e2 2025-04-25T13:52:07-04:00 build(deps): bump google.golang.org/grpc from 1.71.1 to 1.72.0 (#7264) + - 4b6f12e 2025-04-25T13:41:50-04:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7262) + - 47eac43 2025-04-25T13:41:11-04:00 build(deps): bump github.com/prometheus/client_model from 0.6.1 to 0.6.2 (#7254) + - 328165d 2025-04-25T13:40:15-04:00 fix(plugin/secondary): make transfer property mandatory (#7249) + - 427b406 2025-04-25T13:38:00-04:00 plugin/bind: remove macOS bug mention in docs (#7250) + - 7b60fdf 2025-04-25T13:36:16-04:00 build(deps): bump google.golang.org/api from 0.228.0 to 0.229.0 (#7263) + - bc80f73 2025-04-25T13:28:13-04:00 build(deps): bump github.com/prometheus/client_golang (#7252) + - 44ce044 2025-04-25T13:27:05-04:00 build(deps): bump softprops/action-gh-release from 2.2.1 to 2.2.2 (#7261) + - ad3f741 2025-04-25T13:26:46-04:00 build(deps): bump codecov/codecov-action from 5.4.0 to 5.4.2 (#7260) + - 1e05e4c 2025-04-25T13:26:16-04:00 build(deps): bump github/codeql-action from 3.28.14 to 3.28.15 (#7251) + - 2d1455b 2025-04-25T13:23:57-04:00 Remove `?bla=foo:443` for `POST` DoH (#7257) + - 52b3172 2025-04-08T09:46:30-04:00 Do not interrupt querying readiness probes for plugins (#6975) + - ebd1e41 2025-04-07T10:58:46-04:00 build(deps): bump golang.org/x/crypto from 0.36.0 to 0.37.0 (#7242) + - 6913b98 2025-04-07T10:47:43-04:00 build(deps): bump actions/dependency-review-action from 4.5.0 to 4.6.0 (#7245) + - 0876a97 2025-04-07T10:46:54-04:00 build(deps): bump github/codeql-action from 3.28.13 to 3.28.14 (#7244) + - bb257ac 2025-04-07T10:45:42-04:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7243) + - 9c4e72a 2025-04-07T10:44:02-04:00 build(deps): bump google.golang.org/grpc from 1.71.0 to 1.71.1 (#7241) + - 8f48234 2025-04-07T10:13:49-04:00 build(deps): bump github.com/miekg/dns from 1.1.64 to 1.1.65 (#7240) + - 1033d23 2025-04-07T10:07:07-04:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7239) + - 6c2d442 2025-04-07T10:06:29-04:00 build(deps): bump golang.org/x/sys from 0.31.0 to 0.32.0 (#7238) + - 76ba39f 2025-04-04T14:27:39-04:00 chore: Upgrade to golangci-lint v2 (#7236) + - e16162d 2025-04-04T12:27:47-04:00 Added `SetProxyOptions` function for `forward` plugin (#7229) + - 4454c84 2025-04-02T15:16:36-04:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7234) + - fd5482f 2025-04-02T15:16:18-04:00 build(deps): bump google.golang.org/api from 0.227.0 to 0.228.0 (#7233) + - 15a2946 2025-04-02T15:15:56-04:00 build(deps): bump the go-etcd-io group with 2 updates (#7232) + - 707c7c1 2025-03-31T15:52:36-04:00 1.12.1 release (#7220) + - c9f9f7e 2025-03-24T13:34:17-04:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.72.1 to 1.72.2 (#7227) + - 39f2e4e 2025-03-24T18:05:48+01:00 build(deps): bump the go-etcd-io group with 2 updates (#7186) + - 33bc5ae 2025-03-24T18:05:25+01:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7189) + - a1cc54b 2025-03-24T12:50:13-04:00 Update for Go 1.24 (#7226) + - 68867f5 2025-03-24T12:39:34-04:00 build(deps): bump github.com/miekg/dns from 1.1.63 to 1.1.64 (#7223) + - c890335 2025-03-24T12:24:10-04:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7191) + - fded5e7 2025-03-24T12:23:30-04:00 build(deps): bump github.com/prometheus/common from 0.62.0 to 0.63.0 (#7202) + - 1f31a8e 2025-03-24T12:23:08-04:00 build(deps): bump actions/upload-artifact from 4.6.1 to 4.6.2 (#7218) + - 2779728 2025-03-24T12:22:48-04:00 build(deps): bump google.golang.org/protobuf from 1.36.5 to 1.36.6 (#7221) + - 4bbfe06 2025-03-24T11:59:29-04:00 build(deps): bump google.golang.org/api from 0.221.0 to 0.227.0 (#7224) + - e1452ae 2025-03-24T11:56:25-04:00 build(deps): bump github.com/quic-go/quic-go from 0.49.0 to 0.50.1 (#7222) + - 6936282 2025-03-24T11:54:54-04:00 build(deps): bump github.com/expr-lang/expr from 1.17.0 to 1.17.2 (#7225) + - 92d9587 2025-03-24T11:45:13-04:00 build(deps): bump the k8s-io group across 1 directory with 2 updates (#7145) + - 33d0d05 2025-03-24T10:38:11-04:00 Increase CNAME lookup limit from 7 to 10 (#7153) + - f400f87 2025-03-24T10:37:28-04:00 timeouts plugin documentation include DNS over QUIC (DoQ) (#7166) + - 3dc739c 2025-03-24T10:36:21-04:00 build(deps): bump codecov/codecov-action from 5.3.1 to 5.4.0 (#7175) + - 1bb184a 2025-03-24T10:32:39-04:00 chore: fix some comments (#7201) + - 7c76d53 2025-03-24T10:31:24-04:00 Fix handling of pods having DeletionTimestamp set (#7119) (#7131) + - 77516a6 2025-03-24T10:29:20-04:00 build(deps): bump github.com/prometheus/client_golang (#7190) + - 105db81 2025-03-24T10:27:10-04:00 build(deps): bump google.golang.org/grpc from 1.70.0 to 1.71.0 (#7192) + - bc99ddc 2025-03-24T10:26:33-04:00 build(deps): bump docker/login-action from 3.3.0 to 3.4.0 (#7205) + - 41c3baa 2025-03-24T10:26:01-04:00 build(deps): bump aquasecurity/trivy-action from 0.29.0 to 0.30.0 (#7206) + - 8eed599 2025-03-24T10:25:44-04:00 Update README.md (#7210) + - 8d49af1 2025-03-24T10:25:18-04:00 build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.1 to 4.5.2 (#7213) + - 109ca52 2025-03-24T10:25:00-04:00 build(deps): bump actions/setup-go from 5.3.0 to 5.4.0 (#7215) + - da1cb47 2025-03-24T10:22:26-04:00 build(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.2 (#7216) + - 8d8b1dc 2025-03-24T10:21:54-04:00 build(deps): bump github/codeql-action from 3.28.9 to 3.28.13 (#7217) + - 17701df 2025-03-24T10:12:39-04:00 build(deps): bump github.com/expr-lang/expr from 1.16.9 to 1.17.0 (#7204) + - c3218b2 2025-03-18T16:01:41-04:00 build(deps): bump ossf/scorecard-action from 2.4.0 to 2.4.1 (#7165) + - b2b3668 2025-03-18T16:01:27-04:00 build(deps): bump actions/upload-artifact from 4.6.0 to 4.6.1 (#7163) + - 2eb6098 2025-03-18T15:59:23-04:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.71.1 to 1.72.1 (#7156) + - 58d8999 2025-03-18T15:42:43-04:00 Revert "only create PTR records for endpoints with hostname defined (#6898)" (#7194) + - 4de8fb5 2025-03-07T11:37:25-05:00 plugin/forward: added option `failfast_all_unhealthy_upstreams` to return servfail if all upstreams are down (#6999) + - 669ff52 2025-02-18T07:05:47+01:00 build(deps): bump golangci/golangci-lint-action from 6.3.1 to 6.5.0 (#7147) + - 7539c42 2025-02-18T07:05:29+01:00 build(deps): bump google.golang.org/api from 0.220.0 to 0.221.0 (#7146) + - 4018375 2025-02-17T13:45:07+01:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#7135) + - ac3b84e 2025-02-17T11:29:23+01:00 build(deps): bump softprops/action-gh-release from 2.1.0 to 2.2.1 (#7059) + - c7cf113 2025-02-17T11:29:08+01:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.69.1 to 1.71.1 (#7134) + - af4cc46 2025-02-17T11:08:44+01:00 build(deps): bump the go-etcd-io group with 2 updates (#7096) + - 79974b0 2025-02-17T11:08:25+01:00 build(deps): bump github.com/aws/aws-sdk-go from 1.55.5 to 1.55.6 (#7077) + - 0f3c080 2025-02-17T11:08:04+01:00 build(deps): bump actions/upload-artifact from 4.4.3 to 4.6.0 (#7058) + - d918efa 2025-02-17T10:19:46+01:00 build(deps): bump karancode/yamllint-github-action from 2.1.1 to 3.0.0 (#7013) + - 74452ff 2025-02-17T10:19:40+01:00 build(deps): bump aquasecurity/trivy-action from 0.28.0 to 0.29.0 (#7004) + - d15932a 2025-02-17T10:19:16+01:00 build(deps): bump actions/dependency-review-action from 4.4.0 to 4.5.0 (#7002) + - 96f42ac 2025-02-17T10:18:54+01:00 build(deps): bump github.com/Azure/go-autorest/autorest (#7114) + - 0fef225 2025-02-17T10:18:24+01:00 build(deps): bump google.golang.org/protobuf from 1.35.2 to 1.36.5 (#7136) + - 11fb468 2025-02-17T10:17:47+01:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#7137) + - 7cd32ff 2025-02-17T10:17:29+01:00 build(deps): bump golang.org/x/crypto from 0.31.0 to 0.33.0 (#7138) + - 9720e5a 2025-02-17T10:16:56+01:00 build(deps): bump github.com/prometheus/common from 0.60.1 to 0.62.0 (#7073) + - 3315af2 2025-02-17T09:50:19+01:00 build(deps): bump actions/stale from 9.0.0 to 9.1.0 (#7095) + - 5cbaf6a 2025-02-17T09:49:57+01:00 build(deps): bump github.com/quic-go/quic-go from 0.48.1 to 0.49.0 (#7101) + - 266cc89 2025-02-17T09:49:32+01:00 build(deps): bump actions/setup-go from 5.1.0 to 5.3.0 (#7094) + - 66d9373 2025-02-17T09:49:09+01:00 build(deps): bump codecov/codecov-action from 5.0.2 to 5.3.1 (#7093) + - 313f23b 2025-02-17T09:48:53+01:00 build(deps): bump github.com/miekg/dns from 1.1.62 to 1.1.63 (#7103) + - 991e1da 2025-02-17T09:48:24+01:00 build(deps): bump github/codeql-action from 3.27.4 to 3.28.9 (#7133) + - 6bac237 2025-02-17T09:48:08+01:00 build(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.3.1 (#7132) + - e0f4da5 2025-02-17T09:47:51+01:00 build(deps): bump google.golang.org/api from 0.206.0 to 0.220.0 (#7139) + - d8ecde1 2025-01-21T09:41:38+01:00 test: fix cname with proxy test (#7083) + - 1772533 2024-12-19T19:28:38-05:00 build(deps): bump golang.org/x/crypto from 0.29.0 to 0.31.0 (#7029) + - 7429380 2024-11-22T08:13:42-05:00 Update coredns-1.12.0.md (#6998) + - 3588101 2024-11-22T07:38:15-05:00 fix release notes (#6997) + - 51e11f1 2024-11-21T14:27:33-05:00 1.12.0 notes (#6994) + - b277110 2024-11-21T14:25:32-05:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#6995) + - 63112b9 2024-11-21T14:15:06-05:00 build(deps): bump github.com/aws/aws-sdk-go-v2/config (#6974) + - 3557fd3 2024-11-21T14:13:28-05:00 Bump google.golang.org/grpc to 1.68.0 (#6993) + - c6b6eee 2024-11-21T10:32:17-05:00 Update code of conduct reference (#6985) + - 87615ff 2024-11-21T10:30:12-05:00 Update build (#6988) + - 95b44f7 2024-11-21T10:29:21-05:00 Renew steering comittee (#6989) + - 12a36bd 2024-11-21T10:25:25-05:00 1.12.0 bump version (#6986) + - e18c4cc 2024-11-21T11:32:03+01:00 build(deps): bump the go-etcd-io group with 2 updates (#6979) + - bf74b28 2024-11-21T11:31:37+01:00 build(deps): bump google.golang.org/protobuf from 1.35.1 to 1.35.2 (#6980) + - cfd4286 2024-11-21T11:31:15+01:00 build(deps): bump codecov/codecov-action from 4.6.0 to 5.0.2 (#6981) + - 6dfbfd9 2024-11-21T11:30:56+01:00 build(deps): bump softprops/action-gh-release from 2.0.9 to 2.1.0 (#6982) + - b0b9b5d 2024-11-21T11:30:34+01:00 build(deps): bump github/codeql-action from 3.27.1 to 3.27.4 (#6983) + - 3626280 2024-11-14T18:14:00-08:00 build(deps): bump google.golang.org/api from 0.201.0 to 0.206.0 (#6973) + - 59bcc5a 2024-11-14T17:42:46-08:00 build(deps): bump golang.org/x/crypto from 0.28.0 to 0.29.0 (#6962) + - 2823711 2024-11-14T17:02:25-08:00 build(deps): bump golang.org/x/sys from 0.26.0 to 0.27.0 (#6961) + - 714f0e7 2024-11-14T17:02:00-08:00 build(deps): bump github.com/aws/aws-sdk-go-v2/service/secretsmanager (#6966) + - d5f1d91 2024-11-14T17:01:19-08:00 build(deps): bump github/codeql-action from 3.27.0 to 3.27.1 (#6960) + - 6c39f4b 2024-11-13T09:40:25-08:00 multisocket plugin (#6882) + - 43fdf73 2024-11-13T09:36:36-08:00 automaxprocs (#6948) + - 6e11ebd 2024-11-12T20:31:15-05:00 bump version to 1.11.4 and add notes (#6967) + - 517a262 2024-11-12T18:40:01-05:00 Dockerfile: Switch to debian 12 as base (#6968) + - 387f34d 2024-11-05T14:15:45-05:00 build(deps): bump the k8s-io group with 3 updates (#6945) + - 81f45a9 2024-11-05T14:03:47-05:00 build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 (#6955) + - a08382c 2024-11-05T14:00:13-05:00 build(deps): bump actions/checkout from 4.2.1 to 4.2.2 (#6944) + - f67c604 2024-11-05T13:59:11-05:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.69.0 to 1.69.1 (#6953) + - 1235e61 2024-11-05T13:58:54-05:00 build(deps): bump actions/dependency-review-action from 4.3.4 to 4.4.0 (#6952) + - d3e660d 2024-11-05T13:58:43-05:00 build(deps): bump softprops/action-gh-release from 2.0.8 to 2.0.9 (#6951) + - dee79ca 2024-11-05T13:58:30-05:00 build(deps): bump github.com/prometheus/common from 0.60.0 to 0.60.1 (#6946) + - 912657b 2024-11-05T13:58:14-05:00 build(deps): bump actions/setup-go from 5.0.2 to 5.1.0 (#6943) + - d78fe21 2024-11-05T13:58:01-05:00 build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 (#6942) + - 909ce93 2024-10-24T15:20:19-04:00 core: set cache-control max-age as integer, not float (#6764) + - 2d1ce16 2024-10-24T15:18:56-04:00 Issue-6671: Fixed the order of plugins. (#6729) + - 20c5f55 2024-10-24T15:17:25-04:00 `root`: explicit mark `dnssec` support (#6753) + - 7078f15 2024-10-24T14:50:04-04:00 feat: dnssec load keys from AWS Secrets Manager (#6618) + - 04d00b0 2024-10-24T14:33:58-04:00 fuzzing: fix broken oss-fuzz build (#6880) + - 51476f6 2024-10-24T10:35:13-04:00 build(deps): bump github.com/quic-go/quic-go from 0.47.0 to 0.48.1 (#6935) + - 9e0fe89 2024-10-24T10:25:00-04:00 build(deps): bump aquasecurity/trivy-action from 0.24.0 to 0.28.0 (#6934) + - d3b43a4 2024-10-24T10:24:44-04:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.68.0 to 1.69.0 (#6932) + - 23e9004 2024-10-24T10:24:08-04:00 Replace k8s.io/utils/strings/slices by Go stdlib slices (#6863) + - 8ebe094 2024-10-24T10:22:59-04:00 build(deps): bump github.com/prometheus/common from 0.59.1 to 0.60.0 (#6909) + - 5cb9f5d 2024-10-24T10:22:31-04:00 build(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.1.1 (#6907) + - 49a01aa 2024-10-24T10:19:24-04:00 build(deps): bump codecov/codecov-action from 4.5.0 to 4.6.0 (#6906) + - 6bbaccf 2024-10-24T10:07:44-04:00 build(deps): bump github.com/prometheus/client_golang (#6933) + - 6325aeb 2024-10-24T10:06:56-04:00 build(deps): bump google.golang.org/api from 0.199.0 to 0.201.0 (#6931) + - 42ef057 2024-10-24T10:06:34-04:00 build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 (#6927) + - ee4581f 2024-10-24T10:06:20-04:00 build(deps): bump actions/checkout from 4.2.0 to 4.2.1 (#6926) + - 094aa53 2024-10-24T10:06:00-04:00 build(deps): bump github/codeql-action from 3.26.10 to 3.26.13 (#6924) + - c8829a6 2024-10-12T09:49:37+02:00 Update .go-version to 1.23.2 (#6920) + - 9272434 2024-10-07T13:47:56-04:00 plugin/rewrite: Add "revert" parameter for EDNS0 options (#6893) + - 5100fee 2024-10-01T12:15:42-04:00 Fix "GitHub" capitalization (#6806) + - 022fbd8 2024-10-01T12:14:37-04:00 Added OpenSSF Scorecard Badge (#6738) + - bf38e4d 2024-10-01T12:12:19-04:00 fix(cwd): Restored backwards compatibility of Current Workdir (#6731) + - d4e351c 2024-10-01T12:07:37-04:00 fix: plugin/auto: call OnShutdown() for each zone at its own OnShutdown() (#6705) + - ae0b793 2024-10-01T11:49:59-04:00 feature: log queue and buffer memory size configuration (#6591) + - 6efa95c 2024-10-01T11:47:56-04:00 plugin/bind: add zone for link-local IPv6 instead of skipping (#6547) + - 144b0f5 2024-10-01T10:57:14-04:00 Update README.md to up golang version to 1.22 (#6899) + - f4f0d55 2024-09-30T10:32:13-04:00 only create PTR records for endpoints with hostname defined (#6898) + - b086f08 2024-09-30T16:21:10+02:00 build(deps): bump google.golang.org/api from 0.198.0 to 0.199.0 (#6896) + - 2b53099 2024-09-30T16:20:17+02:00 build(deps): bump github/codeql-action from 3.26.8 to 3.26.10 (#6895) + - dc144c6 2024-09-30T15:53:10+02:00 build(deps): bump actions/checkout from 4.1.7 to 4.2.0 (#6894) + - 73c1864 2024-09-24T04:43:36+02:00 build(deps): bump the go-etcd-io group with 2 updates (#6877) + - 2bb5895 2024-09-24T04:43:18+02:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.67.0 to 1.68.0 (#6883) + - bdf1373 2024-09-23T16:41:46+02:00 build(deps): bump google.golang.org/api from 0.194.0 to 0.198.0 (#6885) + - dd82662 2024-09-23T16:30:09+02:00 build(deps): bump the k8s-io group with 3 updates (#6876) + - 87abe53 2024-09-23T16:29:32+02:00 build(deps): bump github.com/quic-go/quic-go from 0.46.0 to 0.47.0 (#6871) + - ea124f1 2024-09-23T16:14:33+02:00 build(deps): bump golang.org/x/crypto from 0.26.0 to 0.27.0 (#6866) + - 9d90983 2024-09-23T16:13:57+02:00 build(deps): bump github.com/prometheus/common from 0.55.0 to 0.59.1 (#6865) + - b0a5891 2024-09-23T15:57:36+02:00 build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0 (#6857) + - 28562ae 2024-09-23T15:55:58+02:00 build(deps): bump github/codeql-action from 3.26.5 to 3.26.8 (#6887) + - 51fd8e6 2024-09-23T15:55:27+02:00 build(deps): bump github.com/prometheus/client_golang (#6886) + - 7a22880 2024-09-23T15:54:50+02:00 build(deps): bump google.golang.org/grpc from 1.65.0 to 1.67.0 (#6884) + - 4e7bd5a 2024-09-11T21:07:02-04:00 fix: reverter should execute the reversion in reversed order (#6872) + - ee4d26b 2024-08-27T09:35:19-04:00 plugin/etcd: fix etcd connection leakage when reload (#6646) + - ebbbb45 2024-08-26T16:45:39-04:00 kubernetes: Add useragent (#6484) + - bb1e1b0 2024-08-26T18:38:36+02:00 build(deps): bump google.golang.org/api from 0.192.0 to 0.194.0 (#6850) + - befb9d7 2024-08-26T16:06:19+02:00 build(deps): bump github/codeql-action from 3.26.2 to 3.26.5 (#6847) + - 8dffcde 2024-08-26T16:05:37+02:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.66.0 to 1.67.0 (#6849) + - 808c88f 2024-08-26T16:04:29+02:00 build(deps): bump github.com/prometheus/client_golang (#6848) + - d3538c5 2024-08-21T17:59:43+02:00 build(deps): bump the k8s-io group with 4 updates (#6840) + - 047064c 2024-08-18T16:57:02+02:00 build(deps): bump google.golang.org/grpc from 1.63.2 to 1.65.0 (#6779) + - 4fa18f5 2024-08-18T16:34:12+02:00 build(deps): bump google.golang.org/api from 0.172.0 to 0.192.0 (#6825) + - b48aeea 2024-08-18T16:18:00+02:00 Fixup grpc test (#6844) + - 2a357f7 2024-08-18T09:16:28+02:00 build(deps): bump golang.org/x/sys from 0.23.0 to 0.24.0 (#6843) + - 3dbcaf2 2024-08-18T09:16:00+02:00 build(deps): bump github.com/miekg/dns from 1.1.59 to 1.1.62 (#6842) + - bfd932f 2024-08-18T09:15:31+02:00 build(deps): bump github.com/prometheus/client_golang (#6841) + - 86bc366 2024-08-18T08:52:40+02:00 build(deps): bump actions/checkout from 4.1.6 to 4.1.7 (#6839) + - 30027c3 2024-08-18T07:14:31+02:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.64.0 to 1.66.0 (#6838) + - a225270 2024-08-18T07:14:07+02:00 build(deps): bump github.com/oschwald/geoip2-golang from 1.9.0 to 1.11.0 (#6837) + - d85c3b6 2024-08-18T07:13:53+02:00 Update build (#6836) + - ec8e384 2024-08-18T06:13:10+02:00 Update grpc library use (#6826) + - aba3352 2024-08-18T05:43:07+02:00 Bump go version from 1.21.11 to 1.21.12 (#6800) + - efa3fb2 2024-08-18T05:42:00+02:00 build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0 (#6831) + - 70ed8a2 2024-08-18T05:41:21+02:00 build(deps): bump github/codeql-action from 3.26.0 to 3.26.2 (#6832) + - c4e60db 2024-08-18T05:40:51+02:00 build(deps): bump softprops/action-gh-release from 2.0.6 to 2.0.8 (#6833) + - ef596a1 2024-08-18T05:40:32+02:00 build(deps): bump github.com/aws/aws-sdk-go from 1.54.11 to 1.55.5 (#6834) + - 3921247 2024-08-18T05:40:10+02:00 build(deps): bump github.com/prometheus/common from 0.53.0 to 0.55.0 (#6835) + - e86360b 2024-08-18T05:39:38+02:00 build(deps): bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 (#6830) + - d37e288 2024-08-17T22:52:07+02:00 build(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4 (#6788) + - edb6ec7 2024-08-17T22:29:10+02:00 build(deps): bump aquasecurity/trivy-action from 0.23.0 to 0.24.0 (#6789) + - 444bbb4 2024-08-17T22:28:57+02:00 build(deps): bump docker/login-action from 3.2.0 to 3.3.0 (#6792) + - 1428cbc 2024-08-17T22:17:38+02:00 build(deps): bump the go-etcd-io group with 2 updates (#6828) + - 99ec0dc 2024-08-17T22:17:14+02:00 build(deps): bump github.com/go-logr/logr from 1.4.1 to 1.4.2 (#6829) + - c93ca1f 2024-08-17T21:57:20+02:00 build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.6 (#6816) + - 9907a1d 2024-08-17T21:57:01+02:00 build(deps): bump github/codeql-action from 3.25.11 to 3.26.0 (#6815) + - 23528bd 2024-08-17T21:45:08+02:00 build(deps): bump github.com/quic-go/quic-go from 0.44.0 to 0.46.0 (#6819) + - dcfdbd2 2024-08-17T21:44:39+02:00 build(deps): bump golang.org/x/crypto from 0.23.0 to 0.26.0 (#6817) + - c742ec0 2024-08-11T08:00:49-04:00 Upgrade antonmedv/expr to expr-lang/expr (#6814) + - e5945d2 2024-08-06T07:13:22-04:00 hosts: add hostsfile as label for coredns_hosts_entries (#6801) + - ae65f4e 2024-08-05T06:47:04-04:00 fix TestCorefile1 panic for nil handling (#6802) + - a6338e9 2024-07-02T08:08:56-04:00 optimize the performance for high qps (#6767) + - 4a7587d 2024-07-02T08:07:12-04:00 build(deps): bump codecov/codecov-action from 4.4.1 to 4.5.0 (#6745) + - 0c3483b 2024-07-02T08:07:01-04:00 build(deps): bump actions/dependency-review-action from 4.3.2 to 4.3.3 (#6735) + - c915562 2024-07-02T08:04:03-04:00 build(deps): bump github.com/aws/aws-sdk-go from 1.53.5 to 1.54.11 (#6772) + - 626333a 2024-07-01T11:27:50-04:00 Fix zone parser error handling (#6680) + - 2e9986c 2024-07-01T11:20:12-04:00 Add alternate option to forward plugin (#6681) + - 3f38844 2024-07-01T11:19:33-04:00 fix: plugin/file: return error when parsing the file fails (#6699) + - 771d64d 2024-07-01T11:18:35-04:00 [fix:documentation] Clarify autopath README (#6750) + - db17037 2024-07-01T10:52:11-04:00 Fix outdated test (#6747) + - b481169 2024-07-01T10:50:59-04:00 build(deps): bump aquasecurity/trivy-action from 0.21.0 to 0.23.0 (#6762) + - 53f5162 2024-07-01T10:50:32-04:00 build(deps): bump github.com/Azure/go-autorest/autorest/azure/auth (#6742) + - 6861cf2 2024-07-01T10:49:56-04:00 build(deps): bump github/codeql-action from 3.25.7 to 3.25.11 (#6770) + - 65f8998 2024-07-01T10:49:40-04:00 build(deps): bump softprops/action-gh-release from 2.0.5 to 2.0.6 (#6769) + - 41e8dba 2024-07-01T10:45:55-04:00 Bump go version from 1.21.8 to 1.21.11 (#6755) + - 32ae647 2024-06-05T14:45:55-04:00 build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#6722) + - 1787b01 2024-06-05T14:45:40-04:00 build(deps): bump github/codeql-action from 3.25.5 to 3.25.7 (#6721) + - 3fd7b1e 2024-06-05T14:45:25-04:00 build(deps): bump codecov/codecov-action from 4.4.0 to 4.4.1 (#6712) + - 98392db 2024-06-05T14:44:36-04:00 build(deps): bump github.com/quic-go/quic-go from 0.42.0 to 0.44.0 (#6708) + - c99b5fa 2024-06-05T14:44:15-04:00 build(deps): bump aquasecurity/trivy-action from 0.20.0 to 0.21.0 (#6711) + - cb493e0 2024-06-05T14:43:57-04:00 build(deps): bump github.com/prometheus/client_golang (#6707) + - 0ed689e 2024-05-29T15:41:09-04:00 Generate zplugin.go correctly with third-party plugins (#6692) + - 621ffde 2024-05-20T22:19:59+02:00 build(deps): bump softprops/action-gh-release from 2.0.4 to 2.0.5 (#6677) + - fc90b23 2024-05-20T21:56:35+02:00 build(deps): bump the go-etcd-io group with 2 updates (#6602) + - 533b035 2024-05-20T21:55:54+02:00 build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3 (#6685) + - 0670c2b 2024-05-20T21:55:32+02:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.63.1 to 1.64.0 (#6687) + - 1113271 2024-05-20T21:54:59+02:00 build(deps): bump github.com/openzipkin/zipkin-go from 0.4.2 to 0.4.3 (#6689) + - 0f692dd 2024-05-20T21:54:27+02:00 build(deps): bump github.com/aws/aws-sdk-go from 1.52.2 to 1.53.5 (#6688) + - 5c19912 2024-05-20T21:53:58+02:00 build(deps): bump github/codeql-action from 3.25.4 to 3.25.5 (#6684) + - eaf938d 2024-05-20T21:53:37+02:00 build(deps): bump codecov/codecov-action from 4.3.1 to 4.4.0 (#6686) + - e196de3 2024-05-13T18:19:48+02:00 build(deps): bump actions/upload-artifact from 4.3.2 to 4.3.3 (#6657) + - 124723a 2024-05-13T18:01:53+02:00 build(deps): bump gopkg.in/DataDog/dd-trace-go.v1 from 1.62.0 to 1.63.1 (#6679) + - f74fc49 2024-05-13T18:01:34+02:00 build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 (#6678) + - 038d0a5 2024-05-13T18:01:17+02:00 build(deps): bump github/codeql-action from 3.25.1 to 3.25.4 (#6676) + - 2030c6d 2024-05-13T18:00:31+02:00 build(deps): bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 (#6675) + - 3638db9 2024-05-13T18:00:05+02:00 build(deps): bump aquasecurity/trivy-action from 0.19.0 to 0.20.0 (#6674) + - e38b8ab 2024-05-13T17:59:43+02:00 build(deps): bump github.com/miekg/dns from 1.1.58 to 1.1.59 (#6652) + - 3b2b857 2024-05-11T15:19:13+02:00 build(deps): bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 (#6615) + - 9b3cbb7 2024-05-11T15:18:50+02:00 build(deps): bump golangci/golangci-lint-action from 4.0.0 to 5.3.0 (#6667) + - 4c1f117 2024-05-11T15:18:38+02:00 build(deps): bump actions/dependency-review-action from 4.2.5 to 4.3.2 (#6668) + - 883b555 2024-05-11T15:18:17+02:00 build(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 (#6666) + - 677e242 2024-05-11T15:18:00+02:00 build(deps): bump github.com/aws/aws-sdk-go from 1.51.25 to 1.52.2 (#6665) -- cluster-ingress-operator embedded-component 072c1cd7726d1efc9bc05982ae3fd6022b097f17 to 8773f8f65be6da42fadbae9b358e082efec8fca5 - - 00810f9 2025-11-04T10:04:34+01:00 OCPBUGS-61508: IngressOperator not exposing some metrics for degraded IngressController +- ovn-kubernetes image-arm64 6fab57dcf4bdabe77a1da826f32252767049bfb0 to dc442479932a9173cc16317d114bc54bd945f04c + - 5d25180b 2025-11-17T13:48:09-05:00 Fixes regression with ecabc89 + - bdfb99a3 2025-11-17T13:16:59+01:00 Fix EIP reassignment on Namespace/Pod/EgressIP label updates + - d5e8d2e8 2025-11-14T15:34:00-05:00 Fixes NAD Controller syncAll for networkID upgrade from node->NAD + - 4cd1fc58 2025-11-14T12:44:40+01:00 Refresh PID when calling OVS/OVN binaries + - 621c4c05 2025-11-13T10:26:26-05:00 Add changes to helm rbac-ovnkube-node.yaml + - 66e23860 2025-11-12T13:04:40-08:00 miscellaneous fixes + - c7633f9c 2025-11-12T14:08:27-05:00 Change rbac ovnkube-node-status-reader name to node-reader + - edb24cc1 2025-11-12T11:50:42-05:00 Add node access to ovnkube-node-status-reader + - e9e70f43 2025-11-12T11:16:17-05:00 Remove --subresource=status from ovnkube.sh get_node_zone -- cluster-kube-scheduler-operator embedded-component 10d89b53f7ddcf0ee45f838c1a43e408074343e6 to 04cb35e0397a3261e783a311b3b8590b8839ea2d - - 25109fc 2025-11-12T16:48:00+01:00 deps: Update library-go - - fbb0bbf 2025-11-11T11:12:59-05:00 make DRAEnablementEnabled defunct - -- cluster-network-operator embedded-component 05d6f46ffb2cd54b72aa4c864a0a5fb82d3fa7c2 to d1321fa72db4d149e87a70385db2841e25e68e12 - - d1f2484 2025-10-26T22:07:43-05:00 Preserve custom resource requests on ovn-control-plane pods - -- csi-external-snapshotter embedded-component 15313fb28f5c42e4b896928478652768225692a6 to 9098db0e434e0d986eeadd2ebe69119540a550d1 - - 581c458 2025-11-10T13:46:26+01:00 UPSTREAM: : Add OpenShift files - - ff86d39 2025-10-23T11:23:04-04:00 Add changelog for v8.4 - - 2573990 2025-10-22T13:34:27-04:00 Update CSI spec to 1.12 - - b3dcf6b 2025-10-21T20:54:34-07:00 Squashed 'release-tools/' changes from 5f38a9075..74502e544 - - 0d9a187 2025-10-21T11:41:09+02:00 Add CEL test cases - - 5af2237 2025-10-14T15:01:03+02:00 Enforce immutability of VolumeGroupSnapshotContentSpec once set - - 3107987 2025-10-14T13:58:01+02:00 feat: use controller-gen deprecatedversion marker - - 6f22bc3 2025-10-08T10:52:03+02:00 fix: remove unused help functions - - 119cfa7 2025-10-08T09:04:45+02:00 Address API review comments - - 5521566 2025-09-25T13:45:26Z Bump actions/checkout from 4 to 5 - - 84447be 2025-09-25T11:49:24Z Bump actions/setup-go from 5 to 6 - - ce8ac62 2025-09-05T12:02:52-06:00 Replace diff.ObjectDiff (removed) with cmp.Diff - - 3a84f71 2025-09-04T15:47:38-06:00 Bump toolchain to go1.24.6 in go.mod - - 604a9ae 2025-09-04T15:14:37-06:00 Bump k8s dependencies to v1.34.0 - - e0348f9 2025-09-04T15:07:46-06:00 Squashed 'release-tools/' changes from 0a435bf98..5f38a9075 - - 389d076 2025-09-03T11:28:10+02:00 Add FG for restarting external-snapshotter faster by releasing leader election lease on sigterm - - 7935bd4 2025-09-01T10:25:06+02:00 go get k8s.io/apiserver/pkg/server@v0.33.2 && go mod tidy && go mod vendor - - 3dd71b2 2025-08-27T21:48:33+02:00 Clarify API comments - - d32f6e9 2025-08-27T09:37:33Z test: fix CVE-2025-47907 error in trivy action - - 1c9ffa5 2025-08-12T11:00:43+02:00 Remove reference to banzaicloud/admission-webhook-example - - 7cf9ba0 2025-08-08T13:27:21+02:00 Update CEL tests - - 4870d73 2025-08-08T13:20:40+02:00 Conversion webhook review - - ba5e7fa 2025-08-06T10:08:45+02:00 Drop support for v1beta1 ConversionReview requests - - 6815d03 2025-08-06T09:15:32+02:00 Remove stale validation webhook documentation, add paragraph about the conversion webhook - - 9ad300a 2025-08-05T15:20:59+02:00 Conversion webhook review - - d1f9f39 2025-08-05T14:09:33+02:00 Rename snapshot-webhook to snapshot-conversion-webhook - - c0c4750 2025-07-29T08:59:29+02:00 Conversion webhook - - c0e647a 2025-07-28T22:41:20+02:00 Set new fields in VolumeGroupSnapshotContent objects - - faf832b 2025-07-28T22:41:20+02:00 Use v1beta2 VolumeGroupSnapshot API instead of v1beta1 - - 67d2939 2025-07-28T22:40:11+02:00 Enable conversion webhook on CRDs - - 2c24dc7 2025-07-28T17:38:19+02:00 Introduce v1beta2 VolumeGroupSnapshot API - -- etcd embedded-component 239c469ebe0bb90864de458d0ce8fc384c7f22b8 to 806f690e1f140e0aea2eb05ef5f288b756b62895 - - 7abfa7e09 2025-11-10T09:19:07-05:00 DOWNSTREAM: : 3.6.5 fixup - - 90c6509c1 2025-10-29T16:14:48-04:00 Updating ose-etcd-container image to be consistent with ART for 4.21 Reconciling with https://github.com/openshift/ocp-build-data/tree/4fbe3fab45239dc4be6f5d9d98a0bf36e0274ec9/images/ose-etcd.yml - - 7a7de8266 2025-10-29T16:13:39-04:00 Updating ose-etcd-container image to be consistent with ART for 4.20 Reconciling with https://github.com/openshift/ocp-build-data/tree/dfb5c7d531490cfdc61a3b88bc533702b9624997/images/ose-etcd.yml - - e0e9ac580 2025-10-29T16:12:36-04:00 Merge remote-tracking branch 'openshift/openshift-4.19' into rebase-etcd-3.5.21-openshift-4.19 - - bdedda0b0 2025-10-29T16:11:48-04:00 DOWNSTREAM: : OCPBUGS-50510: make hardware related timeout delay configurable - - 1700494a1 2025-10-29T15:58:31-04:00 DOWNSTREAM: : ETCD-696: Add rev bumping to force-new-cluster - - ecbb651da 2025-10-29T15:29:34-04:00 Migrate Dockerfile.art for Konflux - - 419eabd25 2025-10-29T15:29:33-04:00 Add support for cachi2 based deps Konflux is replacing RH's internal build system OSBS. OSBS supported a build-time dependency injection system called "cachito". Konflux replaces this with "cachi2" which works differently. REMOTE_SOURCES no longer need to be copied into place and there is no need to source cachito's environment information (Konflux automatically rewrites the Dockerfile to source cachi2/cachi2.env before running the original RUN commands). Additionally, cachito appears to have provided go.sum dependencies whereas cachi2 requires all build-time dependencies in go.mod. Missing dependencies are added to go.mod as // indirect in this change. - - 920025597 2025-10-29T15:20:23-04:00 DOWNSTREAM : resolve merge conflicts - - 0fbd1d911 2025-10-29T15:10:36-04:00 NO-JIRA: use golang 1.23 image - - 9daf6cba1 2025-10-29T15:10:28-04:00 DOWNSTREAM: : ETCD-656: Automate datadir move after quorum-restore - - a0614505a 2025-09-19T12:32:08-07:00 version: bump up to 3.6.5 - - cdf705456 2025-09-13T23:25:31-07:00 Bump go to 1.24.7 - - 5e92f3c0a 2025-09-11T19:11:57Z fix 20271: protect backend usage from concurrent applySnapshot and defrag - - 776cfcbb0 2025-09-06T13:38:32+01:00 Re-check that the lease still exists during the renew process - - 3100e8306 2025-09-06T13:35:28+01:00 Add an e2e test to reproduce lease Renew returns a wrong response - - b1de4caec 2025-08-21T07:38:52-04:00 tests: skip TestCorruptedBackupFileCheck test on big endian platforms - - 7a5cef11f 2025-08-20T22:06:20-07:00 server: Fix TestLogRotation error message in Go 1.24 - - 944dbc9da 2025-08-20T22:02:42-07:00 Address Go 1.24 govet errors - - a02098d43 2025-08-20T22:00:08-07:00 dependency: bump github.com/golangci/golangci-lint from v1.63.4 to v1.64.8 - - 94ff0a2a5 2025-08-20T21:25:23-07:00 Bump go to 1.24 - - 3995467e7 2025-08-19T20:38:19+01:00 Bump bbolt to v1.4.3 - - 40053e325 2025-08-15T12:30:16Z Remove checking confState during schema migration - - 700937e62 2025-08-10T20:27:42+08:00 Bump Go to 1.23.12 - - eba7e9ed7 2025-07-30T09:21:20+01:00 Remove the --experimental-snapshot-catch-up-entries from help - - 5400cdc39 2025-07-25T11:14:45-07:00 version: bump up to 3.6.4 - - e5f4311b7 2025-07-24T09:30:03+01:00 Check promotion against v2store when updating v2store - - e59bb1fdd 2025-07-24T09:28:00+01:00 Add an e2e test to reproduce the issue 20340 - - 1ed440dc2 2025-07-23T06:45:14+12:00 version: bump up to 3.6.3 - - 0655761d6 2025-07-21T14:17:03Z Fix v2store check returning wrong result even there isn't any auth data - - ad00289fa 2025-07-17T18:10:12Z Updated help for --quota-backend-bytes - - 2a88ea2fa 2025-07-14T11:33:11+05:30 Prevent flakes with TestWatchRestore - - 6088ddf90 2025-07-10T19:59:51+12:00 version: bump up to 3.6.2 - - ddda05812 2025-07-08T22:10:35-10:00 Bump go to 1.23.11 - - 50c37266f 2025-07-06T04:50:08Z Avoid lowering revision of watchers in the future after restore - - ab13cb144 2025-07-04T09:01:30Z Add verification to verify the watch response have a bigger revision than minRev - - a0c087ff1 2025-07-02T21:08:45-07:00 Bump bbolt to v1.4.2 - - be98254d0 2025-06-30T15:36:51+02:00 Disable progress notify validation until we can guarantee response - - 9fc770fea 2025-06-30T10:46:05+02:00 Skip sending progress notification for watch with starting revision in the future - - 986fe0876 2025-06-10T15:12:05+01:00 Bump bbolt to v1.4.1 - - a4708beb0 2025-06-06T13:11:06-07:00 version: bump up to 3.6.1 - - 823f94a43 2025-06-05T13:12:18-07:00 Bump Go to 1.23.9 - - 4562eecea 2025-06-05T11:47:32Z Update 'endpoint health' command to avoid calling flags.SetPflagsFromEnv multiple times - - 23bdcbbad 2025-06-03T15:21:28+01:00 Verify that the discovery endpoint isn't empty - - 78e0e2336 2025-05-30T22:51:02+01:00 Initialize Commit Index = max(consistent_index, CommitIndex) on bootstrap if --force-new-cluster set - - 9d53b145e 2025-05-30T22:50:55+01:00 Add an e2e test to reproduce the issue that --force-new-cluster can't remove all members in a corner case - - 302c89ed7 2025-05-30T10:53:46+01:00 mvcc: avoid double decrement of watcher gauge on close/cancel race - - 091f6c8f3 2025-05-29T12:29:53+01:00 Add protection on PromoteMember and UpdateRaftAttributes - - a5ff1caf7 2025-05-29T08:45:23+01:00 Add an e2e test to reproduce the promote member panicking issue when forcibly create one-member cluster - - 5baf45e52 2025-05-28T08:34:37-04:00 refactor to reuse a single harness for both unary and stream tests - - dd9f9a983 2025-05-28T08:34:33-04:00 fix test - - 7078a0747 2025-05-28T08:34:28-04:00 add a new test for tracing with Stream RPC calls - - 1ec53d99e 2025-05-28T08:34:14-04:00 Drop usage of deprecated APIs - - a1bcdc7fc 2025-05-15T20:25:21+01:00 Update release script to exactly match the target tag - - 7a7a77cd3 2025-05-15T11:42:36-07:00 version: bump up to 3.6.0 - - 633921945 2025-05-15T12:42:43Z Add test for panic-free removal of non-existent members - - 115f15ed9 2025-05-08T19:24:34Z version: bump up to 3.6.0-rc.5 - - c774d44f5 2025-05-08T06:12:11Z Fix the tar unzip command, adding the --no-same-owner option to avoid permissions issues - - cddc9bc94 2025-05-06T13:11:20-07:00 Bump Go to 1.23.9 - - 9f66823bc 2025-05-02T17:13:49Z fix: test-release - - 1222c0ade 2025-05-01T18:36:09Z remove DistributedTracing from feature gate list. - - 77e5c6fd6 2025-04-30T21:25:39Z Add test-release-tests Makefile target - - b9d47ef31 2025-04-30T21:11:23Z make: upload partial coverage reports - - d1d265f45 2025-04-30T19:35:52Z chore(client/v3/naming): deprecate Metadata field in Endpoint struct - - 2d8e7256f 2025-04-28T17:21:20Z pkg/featuregate: Return MutableFeatureGate interface in New function - - 9b6738c9c 2025-04-23T10:55:24+01:00 Bump google.golang.org/grpc to v1.71.1 - - 50ac484a2 2025-04-23T09:11:31Z Replace resolver.State.Addresses with resolver.State.Endpoint.Addresses - - 0e5db4e28 2025-04-21T08:21:41Z emit compaction pause duration metric in every compaction batch - - 52bddd026 2025-04-16T07:19:13+12:00 version: bump up to 3.6.0-rc.4 - - b4f7075a5 2025-04-08T11:11:44+01:00 add verification to check whether membership data is in sync between v2store and v3store - - 9e9bef42f 2025-04-07T22:17:40+02:00 [release-3.6] Bump Go to 1.23.8 - - 6807e0f17 2025-04-03T10:02:53Z Switch to validating v3 when v2 and v3 are synchronized - - b82757643 2025-03-28T14:40:32+08:00 remove CHANGELOG directory - - 3325414d8 2025-03-27T16:07:31-07:00 version: bump up to 3.6.0-rc.3 - - ada25acc1 2025-03-27T13:37:40-07:00 dependency: bump golang.org/x/net from v0.37.0 to v0.38.0 - - 1cf5df391 2025-03-27T15:09:30Z bump golang.org/x/net to v0.37.0 to address CVE-2025-22870 - - 91342c9c4 2025-03-26T20:25:42Z Remove v2 from release script - - 77d3af32d 2025-03-26T19:48:00Z Move client/internal/v2 into server/internal/clientv2 - - a1c968700 2025-03-24T15:12:39-04:00 e2e: add upgrade test for clusters set up by promoted members - - de774e7ec 2025-03-24T10:26:03Z Auto sync members in v3store is IsLearner differs between v2 and v3 store - - 922dfbf94 2025-03-24T04:40:07Z Enable uploading coverage report from Prow - - c9b026c29 2025-03-24T04:40:07Z github/workflows: remove coverage workflow - - c4a025ccd 2025-03-23T21:29:56-07:00 dependency: bump github.com/golang-jwt/jwt/v5 from 5.2.1 to 5.2.2 - - 10f68e2e6 2025-03-21T22:15:07Z Returns the string representation of the ClusterVersion - - 4a842d1a9 2025-03-21T17:19:41Z minor refactor DowngradeUpgradeMembersByID to not block on waiting for member to be ready - - db4d0309b 2025-03-10T09:21:18Z fix: grpcproxy can get stuck in and endless loop causing high cpu usage - - 1f889bcc0 2025-03-10T09:17:07Z server: remove ExperimentalMaxLearners - - ca9898fbd 2025-03-07T06:14:19Z github/workflows: delete grpcproxy workflow - - bdd1774be 2025-03-07T06:12:40Z github/workflows: remove fuzzing workflow. - - 3ed4c4ef6 2025-03-07T06:09:15Z github/workflows: remove contrib workflow - - a71ca78e1 2025-03-05T22:52:48-08:00 github workflows: remove release tests - - c2d963e46 2025-03-05T11:16:25-08:00 version: bump up to 3.6.0-rc.2 - - 54f2635c2 2025-03-05T18:56:52Z deflakey: TestCompactionHash in integration - - 1fb0f6876 2025-03-05T17:13:55Z Add verify released binary assets GitHub workflow - - 0cad8942b 2025-03-04T17:15:56-08:00 Bump go toolchain to 1.23.7 - - 78dd7eeea 2025-03-04T17:09:09-08:00 dependency: bump golang.org/x/net from v0.35.0 to v0.36.0 - - 84fefb1e9 2025-03-04T20:31:42Z ensure the version of golang.org/x/net consistent - - 8fd8f8011 2025-03-04T20:19:47Z ensure the version consistent of google.golang.org/genproto/googleapis/rpc - - 325fd876a 2025-03-04T20:05:32Z re-generate api/etcdserverpb/gw/rpc.pb.gw.go - - d2116e82c 2025-03-04T20:00:54Z Bump grpc-gateway/v2 to v2.26.3 - - a6660bee6 2025-03-04T19:58:26Z Create an e2e test to reproduce the issue of etcdserver crashing on receiving watch request - - a7319eb3f 2025-03-03T09:37:07Z tests: deflakey TestLeaseGrantKeepAliveOnce - - 9d6ec6a1a 2025-02-27T15:48:17Z etcdserver: Fixing minor typos in v3election.proto and rpc.proto - - 27e386397 2025-02-26T21:34:57Z add prometheus metric - - 12ac41a87 2025-02-25T11:33:52-08:00 version: bump up to 3.6.0-rc.1 - - 692198378 2025-02-25T18:23:56Z Fix flaky TestLeaseKeepAliveSeconds - - 6662b3ce6 2025-02-25T09:46:24Z Fix TestLeaseGrantTimeToLiveExpired flaky due to leader change - - 60b46a3e5 2025-02-24T23:22:22-08:00 depedency: bump golang.org/x/crypto from v0.32.0 to v0.35.0 - - a743e4797 2025-02-23T10:41:50-05:00 deflake: TestDowngradeCancellationAfterDowngrading1InClusterOf3 - - d758a6412 2025-02-23T10:41:39-05:00 *: Update cases related to Downgrade - - d3c835e78 2025-02-23T10:41:34-05:00 etcdctl: support downgrade info in endpoint command - - ae8c00209 2025-02-23T10:41:29-05:00 v3rpc: add DowngradeInfo in status API - - 586291e44 2025-02-23T10:41:22-05:00 proto: add DowngradeProcessInfo in statusResponse - - ec0aa63cf 2025-02-23T10:48:19Z etcdserver: Update description for count field in the RangeResponse message - - 1fd8887a6 2025-02-20T23:19:03Z Move AlarmBackend interface to fix unexported-return - - db62c7c4f 2025-02-18T18:13:16Z codecov: improve coverage upload - - d057562fc 2025-02-18T10:29:27Z perf: use RLock in Demoted method for read-only access to expiry - - a46f0094e 2025-02-14T20:36:22Z scripts/release: fix typo in "flag" - - b06c1ec12 2025-02-14T20:36:22Z scripts/release: fix getting version minor for prereleases - - bea21855b 2025-02-13T12:10:38-08:00 version: bump up to 3.6.0-rc.0 - - 4b94ddcda 2025-02-13T17:08:53Z Migrate --experimental-set-member-localaddr to using feature flag - - 61ca4093b 2025-02-13T10:37:43Z Fix a peformance regression due to uncertain compaction sleep interval - - ef3f1162c 2025-02-13T07:52:19Z Standardize help deprecated messages - - 904e05d0e 2025-02-13T07:52:19Z Properly deprecate ExperimentalInitialCorruptCheck - - 48b338eba 2025-02-13T07:52:19Z Properly deprecate ExperimentalStopGRPCServiceOnDefrag - - e2de4ce2d 2025-02-13T07:52:19Z Properly deprecate ExperimentalTxnModeWriteWithSharedBuffer - - f1095ba47 2025-02-12T21:23:41Z server/embed: Remove deprecated NewZapCoreLoggerBuilder - - a0c541b1b 2025-02-12T19:11:37Z Fix deprecation comments in server/features - - 66c533df6 2025-02-12T19:11:37Z Fix deprecation comments in server/embed - - dddcdb532 2025-02-12T19:11:37Z Fix rpctypes.ErrClusterIdMismatch deprecation comment - - bfc38cf92 2025-02-12T15:57:45Z Correct the expected version in downgrade test case - - 06092f822 2025-02-11T22:01:01Z Minor refacotr on the e2e test framework - - abbf79f99 2025-02-11T21:33:10Z Fix a log formatting bug in the e2e downgrade tests - - eee08ed06 2025-02-11T20:17:58Z migrate experimental-snapshot-catchup-entries flag to snapshot-catchup-entries - - 164f8cff2 2025-02-11T18:05:16Z Migrate experimental distributed tracing flags to non-experimental flags - - 37520d4cf 2025-02-10T21:51:01Z Migrate WALVersion, and reuse in schema.go - - a3a467bf3 2025-02-07T10:35:03-08:00 migrate experimental-peer-skip-client-san-verification flag to peer-skip-client-san-verification - - 969fd548d 2025-02-07T15:23:20Z Update 3.6 changelog to cover the etcdutl status command change - - 34546e9aa 2025-02-07T12:14:49Z Add more debug info into waitTillSnapshot - - 2d377000f 2025-02-07T19:56:06+08:00 etcdutl: use map to count unique user keys in snapshot status - - db05deaf0 2025-02-06T15:21:20-08:00 server: fix unexported-return using interfaces - - 2cd8fcce5 2025-02-06T14:31:00-08:00 migrate experimental-enable-lease-checkpoint and experimental-enable-lease-checkpoint-persist flag to feature gate. - - e5b39f85a 2025-02-06T18:54:32Z migrate experimental-compaction-sleep-interval flag to compaction-sleep-interval - - 8866fce73 2025-02-06T10:24:52-05:00 test: update robustness doc and new case to reproduce 19179 - - 80a8a82bb 2025-02-06T00:05:04Z migrate experimental-downgrade-check-time to downgrade-check-time - - 3b3243bbb 2025-02-05T23:58:46Z increase timeout for MemberDowngradeUpgrade test - - 70ef8a549 2025-02-05T18:53:09Z Bump raft to v3.6.0 - - 60a83e233 2025-02-05T18:50:37Z Bump bbolt to v1.4.0 - - 14b90f79b 2025-02-05T14:42:54-03:00 changelog: update GO entry to reflect 1.22.12 update - - 0108677e8 2025-02-05T14:34:36Z dependency: bump github.com/spf13/pflag from 1.0.5 to 1.0.6 - - 7f8d40d56 2025-02-04T19:15:39-03:00 bumping go to version 1.23.6 - - d1adc3759 2025-02-04T20:22:56+01:00 chore: use testify instead of testing in tests/integration - - 84b5c89b5 2025-02-04T10:11:24-08:00 CHANGELOG(3.5): Add entry for https://github.com/etcd-io/etcd/pull/19280 - - 4d1a20730 2025-02-04T17:31:43Z Complete partial downgraded cluster cancellation - - dfbdd8853 2025-02-04T13:10:42Z Add learner id into log when being promoted - - cf258b83a 2025-02-03T16:51:09-08:00 Squashed commit of the following: - - 0f97c9712 2025-02-03T13:30:37-08:00 fileutil: removes redundant continue statement in RemoveMatchFile - - 9c078bbdf 2025-02-03T17:39:35Z build(deps): bump github/codeql-action from 3.28.5 to 3.28.8 - - 136dfbe5b 2025-02-02T22:16:22-05:00 *: introduce (*Op) Limit() interface for robustness - - 6b0a9cd76 2025-02-02T14:54:29-08:00 Remove some HealthInterval to reduce the time to run DowngradeUpgradeMembers. - - cad3fce1a 2025-02-02T16:30:18+01:00 fix: use testify instead of t.Fatal or t.Error in pkg package - - 0795f6b95 2025-02-01T22:57:54Z migrate experimental-memory-mlock flag to memory-mlock - - 12bbee7c1 2025-01-31T15:06:14-05:00 deflaky: TestSnapshotStatus - - 49c22492e 2025-01-31T15:04:51Z Update 3.6 changelog to cover the go-grpc-middleware/providers/prometheus change - - 6d8c6af06 2025-01-31T14:40:32Z Update the import items - - 1f33bafd0 2025-01-31T14:31:27Z Remove the integration test case TestAllMetricsGenerated - - 3648220e2 2025-01-31T06:44:29-05:00 incorporate feedback from review - - c136d5a73 2025-01-30T22:41:07-08:00 Fix goword errors - - 91c07650e 2025-01-30T22:30:51Z fix: use require instead of t.Fatal(err) in tests/integration package - - 0ac24a804 2025-01-30T13:24:51-08:00 Refactor scripts/test_images.sh - - 73700e30c 2025-01-30T14:05:44Z Close the http response body - - c3e4df6de 2025-01-30T08:43:53-05:00 Switch from grpc-ecosystem/go-grpc-prometheus to grpc-ecosystem/go-grpc-middleware/providers/prometheus - - 575b484ba 2025-01-30T09:51:19Z fix(alerts): set severity of 'ectdMembersDown' from 'critical' to 'warning' - - 93e90721a 2025-01-30T09:38:14+01:00 Align NewConfig with AddFlags defaults - - c4a424a5b 2025-01-29T21:01:40Z add e2e metrics test case to ensure no any metrics missing in future PRs - - 614640f1c 2025-01-29T13:42:14Z format all prometheus metrics to ensure nice indent - - 27d9978c8 2025-01-28T17:23:51-08:00 migrate to use max-learners flag - - b2fba0290 2025-01-29T11:23:21+13:00 Mark etcd-local-tester as deprecated so we can remove it in future. - - c6f911a0a 2025-01-28T11:11:37-08:00 changelog: add entries regarding 3.5.18 dependency updates - - ff76d1800 2025-01-28T16:40:58Z dependency: bump github.com/prometheus/common from 0.61.0 to 0.62.0 - - c5544044b 2025-01-28T16:40:58Z dependency: bump google.golang.org/grpc from 1.69.4 to 1.70.0 - - 2400016a5 2025-01-28T16:40:58Z dependency: bump github.com/cheggaaa/pb/v3 from 3.1.5 to 3.1.6 and github.com/mattn/go-colorable from 0.1.13 to 0.1.14 - - 70c2e1703 2025-01-28T16:40:58Z dependency: bump google.golang.org/protobuf from 1.36.3 to 1.36.4 - - 60e8485b4 2025-01-28T16:40:35Z dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.25.1 to 2.26.0 - - 2e41777ed 2025-01-28T12:47:53Z Introduce ValidateMemberVersions - - a3c072c3e 2025-01-28T12:35:45Z Add missing error checking after calling DowngradeUpgradeMembers - - e25eca27e 2025-01-28T12:35:45Z Add downgrade cancellation e2e tests - - 62bbf2866 2025-01-28T09:30:54+01:00 Fix documentation of List method of kubernetes interface - - 8a1a39622 2025-01-27T11:29:13-08:00 changelog: add mixed rw performance evaluation backport - - a3bbf74de 2025-01-27T17:52:44Z build(deps): bump github/codeql-action from 3.28.1 to 3.28.5 - - 5ebd47f7e 2025-01-27T17:52:35Z build(deps): bump actions/setup-go from 5.2.0 to 5.3.0 - - 7b4b96d1d 2025-01-27T09:52:13Z Update unit test to verify WAL versions - - d741e6926 2025-01-27T09:52:13Z Update MinimalEtcdVersion to read DowngradeVersionTest.Ver as WAL version - - 1036e4e7e 2025-01-27T09:52:13Z Update etcdserve apply workflow to process DowngradeVersionTestRequest - - 2eca68e34 2025-01-27T09:52:05Z Add DowngradeVersionTestRequest as a field into InternalRaftRequest - - 63fe0f285 2025-01-27T09:39:41Z Add DowngradeVersionTestRequest into api/etcdserverpb/rpc.proto for test purpose only - - c57864985 2025-01-26T18:30:34Z Fix addMemberAsLearnerAndPromote to avoid error 'etcdserver: can only promote a learner member' - - 692947a62 2025-01-26T00:54:41Z tests: Add retry if promote member fails. - - 564e36240 2025-01-24T18:55:06-05:00 tests/robustness: continue should ignore last key - - 267020e94 2025-01-24T13:21:48-08:00 migrate to use bootstrap-defrag-threshold-megabytes flag - - 05e5aad2a 2025-01-24T20:42:45+01:00 docs(CHANGELOG): add release date of etcd v3.5.18 - - 7f1d3b017 2025-01-24T10:23:29-08:00 migrate to use warning-apply-duration flag - - 3e5e79dea 2025-01-24T14:23:53Z Remove the code of checking ClusterVersionSet in MinimalEtcdVersion - - 43c631642 2025-01-23T16:02:02-08:00 robustness: remove explicit random seed in robustness tests. - - b16b8dc6f 2025-01-23T21:08:30Z migrate flag experimental-watch-progress-notify-interval to use watch-progress-notify-interval (#19248) - - 19d405ceb 2025-01-23T10:30:18-05:00 Test for etcd metrics - - 3dbe62fb0 2025-01-23T14:11:23+01:00 Add Version field to the robustness model - - 2bdbeb025 2025-01-22T13:08:53-05:00 CHANGELOG: update backport info for #19179 - - f330406bf 2025-01-22T17:35:29Z refactor the error handler - - ece0c3918 2025-01-22T15:15:02Z Update 3.5 changelog to cover the race condition fix - - 989c55664 2025-01-22T02:12:44Z etcdserver: add learner check to readyz - - 1106969a4 2025-01-21T20:38:33Z dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.58.0 to 0.59.0 - - 7166571b5 2025-01-21T20:37:43Z dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.33.0 to 1.34.0, and other related ones - - dd1d3ad43 2025-01-21T20:37:32Z dependency: bump google.golang.org/protobuf from 1.36.2 to 1.36.3 - - 79a45192a 2025-01-21T20:37:03Z dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.17 to 1.3.18 - - ce545613b 2025-01-21T19:57:10+01:00 Add tests for hardcoded flags in TestEtcdServerProcessConfig - - 6ddc4a286 2025-01-21T17:39:51+01:00 Add tests for NewConfig matching AddFlags defaults - - 201568ac4 2025-01-21T15:46:15Z add commment to clarify the etcd shutting down workflow - - 845a330e4 2025-01-21T12:03:04+01:00 Implement Kubernetes like compaction - - 86a31702c 2025-01-21T10:52:35Z Ensure all goroutines created by StartEtcd to complete before closing the errc - - 3527b3b22 2025-01-21T10:52:35Z Enhance method (*serveCtx) serve to wait for all goroutines to complete before it returns - - 06f77b96f 2025-01-20T17:29:34Z build(deps): bump actions/upload-artifact from 4.5.0 to 4.6.0 - - 8127b0da9 2025-01-20T17:29:30Z build(deps): bump github/codeql-action from 3.28.0 to 3.28.1 - - 8c989a1e3 2025-01-20T17:14:21+01:00 Fix passing compaction-batch-limit to etcd v3.4 and v3.5 - - 52061becc 2025-01-20T11:42:40Z build(deps): bump github.com/golang-jwt/jwt from v4 to v5 - - d8b419257 2025-01-19T18:12:25-05:00 mvcc: restore tombstone index if it's first revision - - bc4669c90 2025-01-18T18:50:47Z wait for the member to get started - - 7da675a32 2025-01-18T17:39:30+08:00 docs: correct compaction period comments for 24-hour window Update compaction period logic in periodic compactor to consistently use 24-hour intervals instead of 1-hour. This fixes incorrect time calculations where: - Compaction period now correctly uses 24-hour instead of 1-hour - Revision recording interval updated to 144-minute (1/10 of 24-hour) instead of 6-minute - Retry interval on compaction failure adjusted to 144-minute to match the new period - - 10d7cea55 2025-01-18T09:44:58+01:00 chore: enable early-return and superfluous-else from revive - - 74ffe2e78 2025-01-18T00:08:48Z etcd: update golang toolchain to 1.23.5 - - 672ba742f 2025-01-17T09:47:01-08:00 robustness: do not panic when parsing unknown versions. - - 1898aeceb 2025-01-17T09:35:28-08:00 changelog: update Go entry to reflect 1.22.11 update - - c504fed58 2025-01-17T10:41:26+01:00 Prevent leaking file descriptor during snapshotting and provide better logging of errors - - b33855055 2025-01-16T22:27:52+01:00 dependency: bump go.opentelemetry.io/proto/otlp from 1.4.0 to 1.5.0, google.golang.org/genproto/googleapis/api from v0.0.0-20241219192143-6b3ec007d9bb to v0.0.0-20250102185135-69823020774d, and google.golang.org/genproto/googleapis/rpc from v0.0.0-20241219192143-6b3ec007d9bb to v0.0.0-20250102185135-69823020774d - - ca1b6560f 2025-01-16T22:27:52+01:00 dependency: bump google.golang.org/protobuf from 1.36.1 to 1.36.2 - - 9b30e122e 2025-01-16T22:27:52+01:00 dependency: bump google.golang.org/grpc from 1.69.2 to 1.69.4 - - 0686a239f 2025-01-16T22:27:52+01:00 dependency: bump github.com/google/yamlfmt from 0.14.0 to 0.15.0 - - 39ccd99ef 2025-01-16T13:24:38Z Minor refactor on the etcdutl migrate command - - 7590a7eba 2025-01-16T12:49:05Z tests: Reproduce #18089 in robustness tests - - 1ef973c27 2025-01-15T15:10:12-08:00 fix lint error - - dcbd30994 2025-01-15T19:39:00+01:00 flags: optimise memory allocation - - 8d0f165fd 2025-01-15T16:26:47Z Minor refactor on RaftCluster.Recover() - - a908d3554 2025-01-15T16:21:29Z Rename migrate_command_test.go to common_test.go - - 88a1bc317 2025-01-15T22:08:23+08:00 server/proxy/tcpproxy: reuse addr in TCPProxy.Run - - 8f5161357 2025-01-15T01:06:39Z add MemberDowngradeUpgrade failpoint - - 33d65fc90 2025-01-14T16:26:50-08:00 TestConfigFileDeprecatedOptions - - d9d60be32 2025-01-14T14:08:30-05:00 tests/robustness/traffic: should use rev=0 for create - - 2386cd49b 2025-01-14T19:59:19+08:00 client/pkg/logutil: simplify MergeOutputPaths function - - c3fb7954e 2025-01-14T08:12:46+01:00 fix: use testify instead of t.Fatal or t.Error in server package - - c6f817eb6 2025-01-13T12:04:39-08:00 add experimental-corrupt-check-time into testcase TestConfigFileDeprecatedOptions - - f4e7157ff 2025-01-13T11:58:40-08:00 migrate to use corrupt-check-time flag - - b00316e03 2025-01-13T17:33:45Z build(deps): bump distroless/static-debian12 from `5c7e2b4` to `3f2b64e` - - 381ff5203 2025-01-13T21:25:17+08:00 client/pkg/logutil: add test for MergeOutputPaths - - 5c0f709c8 2025-01-13T15:13:26+05:30 test: fix TestConfigFileDeprecatedOptions - - 1430c1d8c 2025-01-12T21:20:16+01:00 dependency: bump github.com/jonboulle/clockwork from 0.4.0 to 0.5.0 - - bc16650c1 2025-01-12T21:19:19+01:00 dependency: bump golang.org/x/time from 0.8.0 to 0.9.0 - - d3e4a4e2f 2025-01-12T21:19:19+01:00 dependency: bump golang.org/x/net from 0.33.0 to 0.34.0, golang.org/x/sys from 0.28.0 to 0.29.0, and golang.org/x/crypto from 0.31.0 to 0.32.0 - - 7b6786efb 2025-01-12T21:19:19+01:00 dependency: bump github.com/golangci/golangci-lint from 1.62.2 to 1.63.4 - - 47bd258fc 2025-01-11T21:15:32Z tests: use high burst value in limiter. - - 5702d8750 2025-01-11T21:07:44Z tests: fix wrong number in comment. - - c2025cb75 2025-01-11T18:00:19Z Enhance test case TestEtctlutlMigrate to support multiple member cluster - - 83749666f 2025-01-11T17:52:10Z Move getLatestWALSnap into etcdutl/common.go - - cc49fa8f3 2025-01-11T14:12:45Z Update 3.4/3.5 CHANGELOG with fix for deadlock in etcd.Close - - 08e4d6d9c 2025-01-09T16:12:02-08:00 robustness: only run MemberDowngrade test for high SnapshotCatchUpEntries. - - ea5013941 2025-01-09T22:38:58+01:00 chore: enable use-any rule from revive - - 519a2e3a2 2025-01-09T11:47:06-08:00 Update release_notes.tpl.txt - - df209baaa 2025-01-09T17:10:23Z CHANGELOG: update CHANGELOG-3.5.md - - ec52e3587 2025-01-09T14:39:27Z Update etcdutl migrate command: load wal records from the latest snapshot - - f9ce13e7e 2025-01-09T05:31:35Z Avoid deadlock in etcd.Close when stopping during bootstrapping - - a1a9149bb 2025-01-08T10:54:00-08:00 Fix typo in typo fix - - d5231c749 2025-01-08T15:17:38+01:00 Revert "Update the allowedErrors in TestNoErrorLogsDuringNormalOperations" - - 2415c826c 2025-01-08T21:35:32+08:00 all: simplify and clean up - - 8335e7030 2025-01-08T11:48:26+01:00 Migrate all OldTxn calls to Txn - - 7c7d3ce8a 2025-01-08T11:48:26+01:00 Migrate all OldGet calls to Get - - 524afd20d 2025-01-08T11:48:26+01:00 Set GetOnFailure=true to better simulate k8s traffic - - 3247bc42b 2025-01-08T11:48:26+01:00 Make traffic robustness test use kubernetes.Interface - - 3ee0d4f2e 2025-01-07T16:21:56Z Fix mixVersion test case: ensure a snapshot to be sent out - - e78cec8e5 2025-01-07T12:31:33Z Fix the inconsistent between listen peerURL and advertise peerURL - - c551be9ef 2025-01-02T15:44:49+05:30 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.57.0 to 0.58.0 - - 05ff6333a 2024-12-27T21:15:14-08:00 Rephrase warn messaging - - 7577a56c1 2024-12-27T09:49:22-08:00 Update misleading warn message when versions mismatch - - 38739fc8b 2024-12-27T08:35:09-08:00 docs(contributing): fix links and build tool list - - d76cdc214 2024-12-27T15:33:46+05:30 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.32.0 to 1.33.0 - - d0f78d044 2024-12-27T15:31:45+05:30 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.24.0 to 2.25.1 - - 63ff2e37e 2024-12-27T15:23:38+05:30 dependency: bump google.golang.org/protobuf from 1.36.0 to 1.36.1 - - a869bdf8e 2024-12-27T15:17:56+05:30 dependency: bump google.golang.org/grpc from 1.69.0 to 1.69.2 - - bf3bb6d8b 2024-12-27T15:01:04+05:30 dependency: bump golang.org/x/net from 0.32.0 to 0.33.0 - - 747ef5f5f 2024-12-23T13:08:13-08:00 Add MemberDowngrade failpoint - - e22d809bf 2024-12-23T17:22:28Z build(deps): bump github/codeql-action from 3.27.9 to 3.28.0 - - fdde37d11 2024-12-23T17:22:19Z build(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0 - - c73b3d1e8 2024-12-21T23:46:11+05:30 migrate experimental-txn-mode-write-with-shared-buffer flag to feature gate. - - 44073ed85 2024-12-21T16:51:26+01:00 fix: use testify instead of t.Fatal in tests/common package (part 2) - - 152de1fa7 2024-12-21T15:33:14Z Still return continuous WAL entries when running into ErrSliceOutOfRange - - ce511f6ce 2024-12-19T14:12:22+05:30 dependency: bump google.golang.org/protobuf from 1.35.2 to 1.36.0 - - 8359b320d 2024-12-19T14:11:12+05:30 dependency: bump go.opentelemetry.io/otel from 1.32.0 to 1.33.0 - - d2d1678f1 2024-12-18T22:48:40-08:00 scripts: remove receiver name check - - 2830237e3 2024-12-18T15:23:12Z Add more info in the error message in downgrade detection - - 76f436c09 2024-12-18T15:18:41Z Fix the usage of --start-index in etcd-dump-logs - - 1dede5f9b 2024-12-17T21:52:53-08:00 scripts: remove duplicate bom fix in fix make target - - 5398519dc 2024-12-18T03:04:12Z backend: remove ugly nil checks - - 85363bda3 2024-12-17T09:44:53-08:00 migrate experimental-compact-hash-check-enabled to feature gate. - - 139fca117 2024-12-16T18:00:10Z build(deps): bump github/codeql-action from 3.27.6 to 3.27.9 - - 4494135ff 2024-12-16T18:00:02Z build(deps): bump actions/setup-go from 5.1.0 to 5.2.0 - - 425e5b817 2024-12-16T14:01:42Z Update the allowedErrors in TestNoErrorLogsDuringNormalOperations - - e7df5bf83 2024-12-16T13:27:06+01:00 Wait for cluster version to non-default value to remove errors when cluster is bootstrapping. - - 9143bef42 2024-12-16T10:36:30Z Add more debug info when running into ErrSliceOutOfRange when reading WAL - - e9bc263ee 2024-12-14T21:32:38+05:30 dependency: bump google.golang.org/grpc from 1.68.1 to 1.69.0 - - 3f0ee0e1b 2024-12-14T21:24:28+05:30 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.16 to 1.3.17 - - 3b8b0b48e 2024-12-13T22:06:41+01:00 fix: use testify instead of t.Fatal or t.Error in etcdctl packages - - fad495ad3 2024-12-13T12:10:40-08:00 scripts: fix shellws check - - 07fd512f3 2024-12-13T16:28:16+01:00 fix(e2e): ignore error log about failed storage update - - 16ccfc953 2024-12-13T10:44:14Z Remove duplicated <-s.ReadyNotify() - - 93b01af66 2024-12-12T21:45:28Z Do not wait for ready notify if the server is stopping - - 6d8428778 2024-12-12T20:13:51Z Set a 80% threshold for the codecov status.patch - - 3262da49d 2024-12-12T20:34:12+05:30 dependency: bump github.com/golangci/golangci-lint from 1.61.0 to 1.62.2 - - 5c976cfed 2024-12-12T20:34:12+05:30 dependency: bump github.com/prometheus/common from 0.60.1 to 0.61.0 - - 39fad3bbc 2024-12-12T20:34:12+05:30 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.14 to 1.3.16 - - cd06ddd03 2024-12-12T20:34:12+05:30 dependency: bump google.golang.org/grpc from 1.68.0 to 1.68.1 - - bc9239a18 2024-12-12T20:34:11+05:30 dependency: bump golang.org/x/net from 0.31.0 to 0.32.0 - - 2c7504fd8 2024-12-12T20:32:50+05:30 dependency: bump golang.org/x packages - - 50e7f9f69 2024-12-12T14:49:14Z Add a TODO comment for UnsafeDetectSchemaVersion on how to simplify the implementation - - 9d8f2fa15 2024-12-11T13:29:18-08:00 scripts: simplify mod tidy pass - - 1ba4f32e9 2024-12-11T14:39:05+05:30 docs: consistent way to manage go version - - 99f99cbb2 2024-12-11T07:58:17+01:00 fix: use testify instead of t.Fatal or t.Error in client package (part 1) - - 0a71106a6 2024-12-11T07:57:37+01:00 fix: use testify instead of t.Fatal or t.Error in pkg package (part 1) - - 4bdf0d233 2024-12-10T12:15:53Z Mark --max-snapshots as deprecated in 3.6 and will be decommissioned in 3.7 - - 99be18190 2024-12-09T11:12:03Z Update TestMemberAdd's context timeout by adding 5 more seconds - - 801dfc396 2024-12-07T16:51:59Z Format the 3.5 changelog (#19031) - - bbe48b377 2024-12-07T10:48:35Z Update Changelog of 3.5 and 3.4 (#19028) - - 476e6b44f 2024-12-06T08:03:35Z build(deps): bump github/codeql-action from 3.27.5 to 3.27.6 - - 5a378e7a5 2024-12-05T16:22:51-08:00 docs: Add note on releasing a pre-release - - e1e1787fa 2024-12-05T15:27:27-08:00 release: allow to specify version with the "v" prefix - - ad76095f2 2024-12-05T22:39:23+01:00 group tools/mod updates and update only direct dependencies - - 71d55fe94 2024-12-05T09:25:43Z fix: golangci-lint yamllint - - f54c8f55d 2024-12-04T14:44:18Z Deprecate --v2-deprecation and schedule to remove it in 3.8 - - e89c8ed84 2024-12-04T14:02:58Z Update 3.5 changelog to cover the warning message for the deprecated v2 flags if set - - 084d8726f 2024-12-04T12:58:42Z Update the comments for the v2 deprecation levels to make them clearer - - e9300c0ab 2024-12-04T11:19:35+01:00 GRPC Proxy TLS version Changelog updates - - fb42ae06b 2024-12-04T13:26:05+05:30 etdc main: updated go version from 1.23.3 to 1.23.3 - - 896598725 2024-12-04T11:46:41+05:30 dependency: bump go.opentelemetry.io/proto/otlp from 1.3.1 to 1.4.0 - - 8bc42d907 2024-12-03T15:02:17Z Mark --snapshot-count as deprecated in v3.6 and will be decommissioned in v3.7 - - 647f1621d 2024-12-03T07:32:22+01:00 fix: enable gosimple linter - - c77ea6597 2024-12-02T19:04:38+01:00 Reuse grpcOverheadBytes calculation by creating a function for that - - a76ad4f92 2024-12-02T17:56:17Z build(deps): bump distroless/static-debian12 from `f4a57e8` to `5c7e2b4` - - 348c0cb2b 2024-12-02T18:07:25+01:00 Reuse events between sync loops - - 1f4439c2e 2024-12-02T18:06:59+01:00 Extract rangeEvents function - - f2472d4b8 2024-12-02T14:32:38+01:00 Handle non-linearized MemberList in v3.4 for robustness tests - - f560fe150 2024-12-01T21:38:03Z fix: use require instead of t.Fatal(err) in tests/e2e package - - d714b904e 2024-12-01T21:37:17Z fix: use testify instead of t.Fatal or t.Error in api package - - 7f9efcfe5 2024-12-01T21:36:39Z fix: use testify instead of t.Fatal or t.Error in contrib package - - 374100016 2024-12-01T21:02:48+01:00 Use number of revisions instead of batches to configure TestWatchBatchUnsynced - - 2a415cc62 2024-12-01T21:02:48+01:00 Add scenario for 1 events per revison TestWatchBatchUnsynced - - e88802ac2 2024-12-01T21:02:48+01:00 Use table tests for TestWatchBatchUnsynced - - 1e655bf03 2024-12-01T21:02:48+01:00 Make batching in TestWatchBatchUnsynced explicit - - 8c5e42d41 2024-12-01T21:02:48+01:00 Use assert in TestWatchBatchUnsynced - - 06a5cd6eb 2024-12-01T21:02:48+01:00 Simplify TestSyncWatchers to make recepie for more tests - - 52ea2f83c 2024-12-01T21:02:48+01:00 Use constructor in tests - - 093df6f4d 2024-12-01T20:03:34+01:00 Fix gofump error due to merge race - - 977cee362 2024-11-30T16:03:36+13:00 Add a threshold for codecov failure. - - 18f85aedf 2024-11-29T20:51:01+01:00 Fix benchmark indexing - - 498983404 2024-11-29T20:49:55+01:00 Use assert in TestSnapshot tests - - 6cebf973a 2024-11-29T20:40:02+01:00 Run a separate in memory snapshot to reduce number of entries stored in raft memory storage - - cfe958de6 2024-11-29T20:39:09+01:00 Cleanup triggerSnapshot function and rename it to snapshotIfNeededAndCompactRaftLog - - d907ecdff 2024-11-29T20:39:07+01:00 Separate memory and disk snapshot indexes - - 9d5504449 2024-11-29T20:38:20+01:00 Move updating snapshot index just after we safe snapshot to disk - - 152973425 2024-11-29T14:18:31+01:00 Rename snapshot variables to explicitly mention using disk - - 4cce12a72 2024-11-29T16:39:53+05:30 Fix genproto annotations - - f75f4022c 2024-11-29T11:01:35+01:00 fix: enable gofumpt instead of gofmt linter globally - - 527c1337e 2024-11-29T14:46:03+05:30 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.23.0 to 2.24.0 - - 6fd6bd812 2024-11-29T12:38:16+05:30 dependency: bump github.com/stretchr/testify from 1.9.0 to 1.10.0 - - 75cd1369a 2024-11-28T21:08:42+01:00 fix: enable gofumpt instead of gofmt linter in tests - - 69efe31ea 2024-11-27T07:22:36+01:00 fix: enable gofumpt instead of gofmt linter in server - - 438f9fa0f 2024-11-26T22:01:50+08:00 CHANGELOG: fix runtime panic that occurs when KeepAlive is called with a Context implemented by an uncomparable type #18893 - - d80262916 2024-11-25T18:46:37Z build(deps): bump aquasecurity/trivy-action from 0.28.0 to 0.29.0 - - d28783b28 2024-11-25T17:11:29Z build(deps): bump github/codeql-action from 3.27.4 to 3.27.5 - - 7961fb33c 2024-11-23T14:39:21+05:30 dependency: bump go.etcd.io/raft/v3 v3.6.0-beta.0 - - 817611897 2024-11-22T22:13:53+08:00 fix runtime error: comparing uncomparable type - - 9c82a17a7 2024-11-21T15:11:47+05:30 Fix genproto annotations - - 880d5ada5 2024-11-21T11:19:16+05:30 dependency: bump google.golang.org/protobuf from 1.35.1 to 1.35.2 - - 8f2153097 2024-11-21T11:15:43+05:30 dependency: bump golang.org/x/net from 0.30.0 to 0.31.0 - - f8cfb43ba 2024-11-21T10:58:51+05:30 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.56.0 to 0.57.0 - - 6b8198e85 2024-11-21T10:53:48+05:30 dependency: bump golang.org/x/crypto from 0.28.0 to 0.29.0 - - b85c6ba7b 2024-11-20T20:49:56+01:00 Reduce QPS requirement to 100 - - d961c8181 2024-11-20T19:58:01+01:00 Add jitter to failpoint injection to cover periodily executed compaction - - 280ea9e72 2024-11-18T18:24:51Z build(deps): bump github/codeql-action from 3.27.1 to 3.27.4 - - 40abc3c84 2024-11-18T17:49:20Z build(deps): bump distroless/static-debian12 from `cc226ca` to `f4a57e8` - - 3d33c09c4 2024-11-17T21:55:30+01:00 Multiply return time by 100 in tests to detect off by one differences - - 668834b7d 2024-11-17T21:51:45+01:00 Allow duplicated put requests - - 6da678180 2024-11-17T21:51:44+01:00 Use client put count for uniqness - - c414a7d84 2024-11-17T21:51:44+01:00 Unify functions for calculating return time - - ef393acbe 2024-11-17T21:51:44+01:00 Reorder returnTime functions - - dbb1ddc81 2024-11-17T21:51:44+01:00 Use persisted request count to determine if request was persisted - - 7315fcee8 2024-11-17T21:51:44+01:00 Count number of client puts and don't patch duplicated puts - - 6d00e7be5 2024-11-16T23:41:31+01:00 Extract isUniqueOps function - - 4c2bd31b3 2024-11-16T23:41:31+01:00 Refactor watch response util functions for unit tests - - 430741ec8 2024-11-16T23:41:06+01:00 Use int for value stored in precomputed maps - - fc84b8ac9 2024-11-16T23:36:55+01:00 Unify operation refereces by using keyValue as key for put operation - - 4a1855ecd 2024-11-16T17:34:45+01:00 Use switch for matching operations - - c51e18d4d 2024-11-16T17:32:42+01:00 Introduce separate bool variable for peristed - - 6d2d7ec70 2024-11-16T17:31:05+01:00 Move matching persisted operation into the for loop - - 30a6585ce 2024-11-16T17:29:45+01:00 Move matching event handling to the loop - - d42ecfc3f 2024-11-16T17:26:33+01:00 Merge for loops for transaction - - daa00b5d1 2024-11-16T17:26:12+01:00 Use continue instead of nest loop - - b6b6f4d41 2024-11-16T17:25:35+01:00 Defractor the functions for future merging - - e761905fa 2024-11-16T17:25:25+01:00 Don't validate watch patching time as we no longer use watch to decide to discard - - 8f806e7e3 2024-11-15T17:33:06-07:00 changelog: add GO-2024-3250 remediation entry - - 7a81c5f8c 2024-11-15T15:43:14+01:00 Add robustness track record section to make tracking easier - - dd578f49c 2024-11-15T14:14:51+02:00 Fix displaying etcd logo in README on a dark theme - - f26f65784 2024-11-15T04:47:52+13:00 Add ivanvc as approver for .github, scripts and tools/rw-heatmaps. - - e67a4cdce 2024-11-14T14:27:11+05:30 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace from 1.31.0 to 1.32.0 - - 790994b92 2024-11-14T11:28:05+05:30 dependency: bump google.golang.org/grpc from 1.67.1 to 1.68.0 - - 04914cc97 2024-11-14T11:28:05+05:30 dependency: bump golang.org/x/sync from 0.8.0 to 0.9.0 - - bc9fac7a0 2024-11-14T11:27:55+05:30 dependency: bump go.opentelemetry.io/otel from 1.31.0 to 1.32.0 - - eaeeebd2b 2024-11-13T15:32:20+05:30 dependency: bump golang.org/x/time from 0.7.0 to 0.8.0 - - d27054614 2024-11-12T16:25:13-07:00 docs(release): update GitHub release related instructions - - fdfb5c085 2024-11-12T19:08:02Z tests: add robustness test for issue 17780 - - 204aa5978 2024-11-12T18:50:42+01:00 docs(CHANGELOG): add release date of etcd v3.5.17 - - 91e8ff68b 2024-11-12T23:05:29+05:30 CHANGELOG: set release 3.4.35 date - - 617f3578b 2024-11-12T18:08:33+01:00 add tls min/max version to grpc proxy - - 89a70e450 2024-11-12T07:33:40+13:00 Remove actuated badge from README.md - - 8d5b84555 2024-11-11T17:59:19Z build(deps): bump github/codeql-action from 3.27.0 to 3.27.1 - - b7812513c 2024-11-11T17:30:41+01:00 Translate v2 requests into v3 ClusterMemberAttrSetRequest and ClusterVersionSetRequest - - d44897cbc 2024-11-10T16:43:11+01:00 Fix a format error in dependency_management.md - - c6d922104 2024-11-09T19:32:11+01:00 fix: enable gofumpt instead of gofmt linter in tools - - 3ef69d268 2024-11-09T00:37:14+01:00 fix: enable gofumpt instead of gofmt linter in contrib, etcdctl and etcdutl - - 97d19b6e2 2024-11-08T12:35:42+01:00 build: fix govet shadow err - - 07fe74505 2024-11-08T09:22:35+01:00 docs(CHANGELOG): update 3.4/3.5 changelog with defrag close fix - - 2cc2b8ccc 2024-11-07T11:58:34-08:00 changelog: update go version for 3.4.35 and 3.5.17 - - a19d4087c 2024-11-07T15:18:39+01:00 fix(defrag): close temp file in case of error - - 86c6b5f2d 2024-11-07T10:28:48Z fix: enable usestdlibvars linter - - 456063c99 2024-11-07T08:20:01+01:00 docs(CHANGELOG): update 3.4/3.5 changelogs with defrag fixes - - b1fb361ec 2024-11-06T17:13:26-08:00 Bump go toolchain to 1.23.3 - - c438fcbaf 2024-11-06T23:56:54Z storage/backend: fatal if there is panic during defrag - - 04c042cea 2024-11-06T12:43:51+01:00 fix(defrag): handle defragdb failure - - 35cab80e1 2024-11-06T11:01:17+01:00 fix(defrag): handle no space left error - - 8c6076219 2024-11-06T15:23:51+05:30 dependency: bump github.com/google/yamlfmt from 0.13.0 to 0.14.0 - - 447bec1bf 2024-11-06T15:23:51+05:30 dependency: bump go.etcd.io/bbolt from 1.4.0-alpha.1 to 1.4.0-beta.0 - - f43c6815b 2024-11-06T15:23:08+05:30 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.22.0 to 2.23.0 - - fed92fa7f 2024-11-05T18:11:05+05:30 dependency: bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 - - 7e7b7d5fa 2024-11-03T22:55:30+01:00 fix: enable go-require rule from testifylint - - 36a5e40fb 2024-11-03T09:32:58+01:00 fix: use require instead of t.Fatal(err) in tests/common package - - 3bacd02ab 2024-11-01T13:25:24Z Update 3.4 changelog to cover the goroutine leakage issue - - 68bd17d63 2024-11-01T10:06:05+01:00 chore(e2e): extend TestNoErrorLogsDuringNormalOperations with different TLS configs - - e5a63483f 2024-10-31T18:54:59+01:00 fix: enable errorlint linter - - df15a7fe4 2024-10-31T22:43:48+08:00 dependency: bump github.com/prometheus/common from 0.60.0 to 0.60.1 - - 5858a08f1 2024-10-31T08:33:34+01:00 fix: enable require-error rule from testifylint - - ff632e45f 2024-10-31T08:00:36+01:00 fix: enable errorlint in etcdctl and etcdutl directories - - 4763cb10f 2024-10-30T16:43:51-07:00 release: properly change working dir if tmp location already exists - - 694b0fbdb 2024-10-30T09:25:54Z refactor Etcdserver.snapshot to extract compaction into a separate method - - cb19f64b1 2024-10-30T08:47:19+01:00 chore(e2e): extend logging test to 3 node cluster - - 11cc8bb9f 2024-10-29T08:42:51Z Update 3.5 changelog to cover to major fixes - - 56326a57c 2024-10-29T06:50:43Z build(deps): bump actions/checkout from 4.2.1 to 4.2.2 - - 3a3115122 2024-10-28T21:02:58+01:00 fix: enable require-error rule from testifylint in client, pkg and server packages - - fca20dd60 2024-10-28T17:41:03Z build(deps): bump distroless/static-debian12 from `69830f2` to `cc226ca` - - 4a8871225 2024-10-28T17:26:19Z build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 - - 26866680c 2024-10-28T17:26:06Z build(deps): bump actions/setup-go from 5.0.2 to 5.1.0 - - 5cce245df 2024-10-27T12:43:19+09:00 dependency: bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 - - 3abdf612b 2024-10-26T08:16:47+02:00 fix: enable errorlint in server directory - - 4017ebaed 2024-10-26T08:15:37+02:00 fix: use require instead of t.Fatal(err) in tests/robustness package - - 6ef1c8c02 2024-10-24T17:06:14+01:00 Fix e2e/ctl_v3_auth_test.go:123:5: declaration of err shadows declaration at line 106 - - 4da20aa06 2024-10-24T09:47:52Z fix: use require.NoError instead of t.Fatal(err) in tests package (part 1) - - 4c8a41cd2 2024-10-24T08:47:46+02:00 fix: enable float-compare rule from testifylint - - 048fd57df 2024-10-24T07:52:17+02:00 fix: enable tenv linter - - 16221d58b 2024-10-23T23:19:16+02:00 Ensure compaction is executed at even intervals to avoid overload - - bd0d1a61e 2024-10-23T23:12:44+02:00 Improve documentation of robustness test adding key concepts used in the test - - 105782f95 2024-10-23T20:54:38+02:00 Remove brackets from failpoint name - - 8a0fd66db 2024-10-22T12:32:33-07:00 Fix risk of a partial write txn being applied - - 906022689 2024-10-22T06:24:16+01:00 Add comment to clarify non-f-functions on golang standard lib - - 77607356d 2024-10-21T12:09:27-07:00 [serverWatchStream] terminate recvLoop on sws.close() - - 2be8e12b0 2024-10-21T17:42:35Z build(deps): bump aquasecurity/trivy-action from 0.27.0 to 0.28.0 - - 8c538cd81 2024-10-20T13:37:57+08:00 dependency: bump bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.30.0 to 1.31.0, github.com/rogpeppe/go-internal from v1.12.0 to v1.13.1, and google.golang.org/genproto/googleapis/api from v0.0.0-20240924160255-9d4c2d233b61 to v0.0.0-20241007155032-5fefd90f89a9 - - 940777e20 2024-10-20T13:37:57+08:00 dependency: bump google.golang.org/protobuf from 1.34.2 to 1.35.1 and google.golang.org/genproto/googleapis/rpc from v0.0.0-20240924160255-9d4c2d233b61 to v0.0.0-20241007155032-5fefd90f89a9 - - ee972bab8 2024-10-20T13:37:57+08:00 dependency: bump go.opentelemetry.io/otel from 1.30.0 to 1.31.0 and bump go.opentelemetry.io/otel/trace from 1.30.0 to 1.31.0 - - 894b618a8 2024-10-20T13:37:57+08:00 dependency: bump google.golang.org/protobuf from 1.34.2 to 1.35.1 - - 522edd56b 2024-10-20T13:37:57+08:00 dependency: bump golang.org/x/net from 0.29.0 to 0.30.0 - - d275172c4 2024-10-20T13:37:57+08:00 dependency: bump golang.org/x/time from 0.6.0 to 0.7.0 - - 63dad7924 2024-10-18T13:06:48+02:00 fix: use require.NoError instead of t.Fatal(err) in contrib and tools packages - - 960a8be3f 2024-10-18T08:10:15+01:00 Update changelog-3.6 to cover the new flags for etcdctl - - 0bec6a8ef 2024-10-18T11:42:54+08:00 embed: fix typo client-listen-x to listen-client-x - - 906247c8f 2024-10-17T22:29:59+02:00 fix: enable gofumpt instead of gofmt linter in client - - ff4a8df3a 2024-10-17T14:10:35+02:00 fix: enable formatter rule from testifylint - - 6165f6041 2024-10-17T09:17:59Z fix: enable expected-actual rule from testifylint - - 7ecb72a2b 2024-10-17T07:22:40+02:00 fix: enable error-nil rule from testifylint - - 97c886918 2024-10-17T00:06:06+02:00 fix: enable thelper linter in client directory - - ed9f61df2 2024-10-16T19:54:41+08:00 feat(etcdctl): add --max-send-bytes and --max-recv-bytes options - - 499196dfb 2024-10-16T12:55:25+02:00 fix: enable error-is-as rule from testifylint - - 482eac31e 2024-10-15T14:50:47-07:00 CHANGELOG: add go 1.22.8 entry for 3.4 and 3.5 - - 1c825ad7e 2024-10-15T14:28:16-07:00 tests: remaining errors.Is conversions - - b757772eb 2024-10-15T14:06:16+01:00 Update endpointsFromCluster to reuse clientConfigFromCmd - - 4957e5670 2024-10-15T09:48:12+01:00 update epHealthCommandFunc to reuse clientConfigFromCmd - - ebe341b35 2024-10-14T17:45:19Z build(deps): bump aquasecurity/trivy-action from 0.24.0 to 0.27.0 - - d70835de9 2024-10-14T17:45:16Z build(deps): bump actions/upload-artifact from 4.4.1 to 4.4.3 - - e57cffc20 2024-10-14T17:45:12Z build(deps): bump github/codeql-action from 3.26.12 to 3.26.13 - - b281a3c4f 2024-10-13T19:43:20+02:00 fix: enable errorlint in api, client and pkg - - c9f6dc723 2024-10-12T12:39:00+02:00 fix: enable errorlint in module `go.etcd.io/etcd/client/v2` - - 88d2d2472 2024-10-11T13:24:16-07:00 release: use GitHub's gh to create GitHub release - - e4aa90406 2024-10-11T22:10:36+02:00 fix: enable compares and negative-positive rules from testifylint - - 8c29d78b6 2024-10-11T20:46:28+02:00 deprecate testutil/assert.go - - 9e6341f5c 2024-10-10T22:35:34-07:00 github/workflows: remove ARM integration jobs - - de2c95dcb 2024-10-11T07:10:03+02:00 fix: enable nil-compare rule from testifylint - - 33d7f2d53 2024-10-11T07:03:18+02:00 fix: enable gofmt and whitespace linters - - e06fb8171 2024-10-10T11:07:21Z fix: enable empty and len rules from testifylint - - bca44f5f5 2024-10-09T19:19:02+01:00 Update release steps on how to share quay.io password - - 3343dc894 2024-10-09T08:29:38+02:00 fix: use require.NoError instead of t.Fatal(err) in client package - - 36f0f659a 2024-10-08T19:55:05+02:00 dependency: bump golang.org/x/crypto from 0.27.0 to 0.28.0 and bump golang.org/x/text from 0.18.0 to 0.19.0 - - 3520d3223 2024-10-08T19:55:05+02:00 dependency: bump github.com/prometheus/common from 0.59.1 to 0.60.0 - - c256db106 2024-10-08T19:55:05+02:00 dependency: bump golang.org/x/sys from 0.25.0 to 0.26.0 - - f0d596787 2024-10-08T19:55:05+02:00 dependency: bump google.golang.org/grpc from 1.67.0 to 1.67.1 - - feba5444f 2024-10-08T03:02:10Z build(deps): bump actions/checkout from 4.2.0 to 4.2.1 - - cb1cf6cfd 2024-10-07T17:19:21Z build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.1 - - f66637b6a 2024-10-07T17:19:17Z build(deps): bump github/codeql-action from 3.26.10 to 3.26.12 - - b23947b60 2024-10-06T09:47:02+02:00 fix: enable bool-compare rule from testifylint - - 8cf112158 2024-10-05T13:02:38+02:00 Move scenarios to subpackage - - 279ffd57a 2024-10-05T13:02:37+02:00 Move watch util to client package. - - 5fe3781b2 2024-10-05T13:02:37+02:00 Move images to subdirectory - - 08d54bc5a 2024-10-04T18:14:25+02:00 Remove context from appliers - - 753734186 2024-10-04T16:56:16+02:00 Remove context from dispatch - - ffdf5f2d0 2024-10-04T16:06:55+02:00 Remove context from top level apply - - d1c83d1cf 2024-10-04T08:16:42+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.54.0 to 0.55.0 - - 3654d03c1 2024-10-03T14:21:43-07:00 api: address revive unexported-return issues - - 50a876cf6 2024-10-03T19:56:17+02:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.13 to 1.3.14 - - 1af428aaa 2024-10-02T12:52:49-07:00 github/workflows: use ECR mirror for Trivy's DB - - 4284a71a6 2024-10-02T10:36:37Z fix(v3compactor): flaky TestPeriodicSkipRevNotChange test by increasing timeout - - bea695dc5 2024-10-02T07:37:04+02:00 docs(contributing): document how to install stress tool - - 8650df286 2024-10-02T03:34:11+05:30 Bump go version to 1.23.2 - - a2f5ffa81 2024-10-01T12:01:12Z build(deps): bump actions/checkout from 4.1.7 to 4.2.0 - - ddf0ac2dc 2024-10-01T11:54:19Z fix(tests/e2e): ensure spawned cmds are closed - - 83f75e1bf 2024-10-01T10:59:25+02:00 fix(tests/common): increase token ttl to fix flaky TestAuthLeaseTimeToLive test - - 1968199fa 2024-09-30T17:22:26Z build(deps): bump distroless/static-debian12 from `b033683` to `69830f2` - - f385c2772 2024-09-30T17:12:43Z build(deps): bump github/codeql-action from 3.26.8 to 3.26.10 - - 3374e27f1 2024-09-30T11:13:23+02:00 etcdserver: fix panic when checking IsLearner of removed member - - 0739142ee 2024-09-29T05:23:47-07:00 server: errors.Is conversions - - dcdfead77 2024-09-26T22:38:57+02:00 Bump go toolchain to 1.23.1 - - 79f31c7a5 2024-09-26T00:40:27+02:00 dependency: bump go.opentelemetry.io/otel from 1.29.0 to 1.30.0 - - 4d4008164 2024-09-25T22:43:51+02:00 dependency: bump google.golang.org/grpc from 1.66.0 to 1.67.0 - - d77c9ac5c 2024-09-25T22:43:51+02:00 dependency: bump github.com/prometheus/client_golang from 1.20.3 to 1.20.4 - - 680eadf0d 2024-09-24T12:55:24-05:00 Add function to create WAL files - - 204ef59f8 2024-09-24T02:36:34Z build(deps): bump github/codeql-action from 3.26.7 to 3.26.8 - - 3ec8d3fd0 2024-09-23T23:41:27Z build(deps): bump distroless/static-debian12 from `95eb83a` to `b033683` - - 3347d985e 2024-09-23T14:50:01-07:00 github: remove build job - - 6767e1ff6 2024-09-23T10:12:40-07:00 command: Use errors.Is for error equality check in ep_command.go - - 063627e42 2024-09-23T17:22:05+03:30 update: `cobra.ExactValidArgs` method is deprecated - - ecc2c5e47 2024-09-22T17:43:01-07:00 client modules: remaining errors.Is conversions for error equality and inequality checks. - - 35edbf91a 2024-09-22T17:50:56+02:00 dependency: bump github.com/golangci/golangci-lint from 1.60.3 to 1.61.0 and google.golang.org/genproto/googleapis/rpc from v0.0.0-20240822170219-fc7c04adadcd to v0.0.0-20240903143218-8af14fe29dc1 - - 1199fa89a 2024-09-22T17:50:12+02:00 dependency: bump golang.org/x/net from 0.28.0 to 0.29.0 - - c568ce621 2024-09-20T15:57:00-07:00 ioutil: remaining errors.Is conversions - - f6278ef2a 2024-09-20T15:44:13-07:00 contrib: remaining errors.Is conversions - - 0a355d3fb 2024-09-20T15:38:46-07:00 etcdctl: remaining errors.Is conversions for error equality and inequality checks - - d59fa331c 2024-09-20T15:06:10-07:00 Replaces rest of error equality checks with errors.Is - - b8cb654be 2024-09-19T17:34:24+05:30 Use strict synchronization for revision getter to minimize flaky result caused by time racing. - - 5b2faec98 2024-09-18T21:45:07-04:00 fea: Remane modules_exp to modules_for_bom to improve code and clarity - - fc901bd01 2024-09-18T14:33:13+02:00 Add tools/mod to module_dirs - - 4155d8bb5 2024-09-18T15:10:07+08:00 docs: fix description of WatchResponse.canceled - - 7e3901fb0 2024-09-17T13:57:20-07:00 docs: update release.md with improvements from v3.4.34 release - - d12bb7e0f 2024-09-16T14:07:16-05:00 Ensure consistent file permissions on broken WAL - - 2d5e1858c 2024-09-16T17:47:08Z build(deps): bump github/codeql-action from 3.26.6 to 3.26.7 - - 7e8e0bf1f 2024-09-16T11:31:30+12:00 Ensure commits are signed in scripts/release.sh. - - 14d54893e 2024-09-14T22:29:31+02:00 dependency: bump golang.org/x/crypto from 0.26.0 to 0.27.0 - - a976ba136 2024-09-14T22:10:04+02:00 dependency: bump github.com/prometheus/client_golang from 1.20.2 to 1.20.3 - - 636f19136 2024-09-14T21:48:11+02:00 dependency: bump github.com/prometheus/common from 0.57.0 to 0.59.1 - - 94e550211 2024-09-11T13:27:10-07:00 CHANGELOG: set release 3.4.34 date - - 29f3bc222 2024-09-11T15:32:52+02:00 Bump go toolchain to 1.22.7 - - 96e17d38e 2024-09-10T13:43:19-07:00 Update release date for v3.5.16 - - 00f8a47d2 2024-09-11T00:37:41+05:30 Improve release documentation - - eb100511a 2024-09-09T17:37:08Z build(deps): bump distroless/static-debian12 from `ce46866` to `95eb83a` - - a04235494 2024-09-09T10:39:44-05:00 Fix races in TestLessorRenewExtendPileup - - 7fcc3cfef 2024-09-09T10:17:31+08:00 CHANGELOG: add note for the CompactionSleepInterval flag(PR 18514) - - e3bade81e 2024-09-05T20:57:49-07:00 CHANGELOG: add note regarding updating to go 1.22.7 - - cb2f7b7a6 2024-09-05T08:46:22+01:00 Support scan-keys command to scan the key space starting a specific revision - - 46cf1e6e8 2024-09-05T15:13:21+08:00 benchmark: support insecure-skip-tls-verify - - d4df7a902 2024-09-03T16:02:24-07:00 Replaces a number of error equality checks with errors.Is - - b3a0047c8 2024-09-03T16:33:50+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.53.0 to 0.54.0 - - bd246ea17 2024-09-03T16:30:25+02:00 dependency: bump github.com/prometheus/common from 0.55.0 to 0.57.0 - - 2cd46694b 2024-09-03T16:27:55+02:00 dependency: bump google.golang.org/grpc from 1.65.0 to 1.66.0 - - 516776a90 2024-09-02T17:44:09Z build(deps): bump github/codeql-action from 3.26.5 to 3.26.6 - - b0e914837 2024-09-02T17:43:56Z build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0 - - 06a6da0ea 2024-08-30T23:03:32+02:00 dependency: bump google.golang.org/genproto/googleapis/rpc from v0.0.0-20240814211410-ddb44dafa142 to v0.0.0-20240822170219-fc7c04adadcd - - d6b5693f9 2024-08-30T23:01:23+02:00 dependency: bump google.golang.org/genproto/googleapis/api from v0.0.0-20240814211410-ddb44dafa142 to v0.0.0-20240822170219-fc7c04adadcd - - c2d4f2b69 2024-08-30T22:58:26+02:00 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.27.0 to 1.29.0 - - a69829bae 2024-08-29T22:16:48+02:00 Address linter issues - - 077817058 2024-08-29T22:12:13+02:00 dependency: bump github.com/prometheus/client_golang from 1.20.0 to 1.20.2 - - 40fc67e88 2024-08-29T22:12:13+02:00 dependency: bump go.opentelemetry.io/otel/sdk from 1.28.0 to 1.29.0 - - 7ef38ee7e 2024-08-29T22:12:13+02:00 dependency: bump go.opentelemetry.io/otel from 1.28.0 to 1.29.0 and bump go.opentelemetry.io/otel/trace from 1.28.0 to 1.29. - - f56a0a4e8 2024-08-29T22:12:13+02:00 dependency: bump github.com/google/btree from 1.1.2 to 1.1.3 - - bcc229a25 2024-08-29T22:12:13+02:00 dependency: bump github.com/golangci/golangci-lint from 1.59.1 to 1.60.3 - - 2bcaed1e0 2024-08-29T16:46:00+02:00 Fix passing default grpc call options in Kubernetes client - - 961b1cd93 2024-08-29T12:04:48+05:30 CHANGELOG: update changes for issue 18480 - - 2c53be7c5 2024-08-27T14:36:06+01:00 etcdserver: rename defaultCompactionSleepInterval var (#18495) - - f96347a0c 2024-08-26T17:52:33Z build(deps): bump github/codeql-action from 3.26.3 to 3.26.5 - - 190a5c799 2024-08-24T16:58:35+02:00 dependency: bump honnef.co/go/tools from 0.4.7 to 0.5.1 - - e794407f3 2024-08-24T03:10:29+02:00 dependency: bump github.com/prometheus/client_golang from 1.19.1 to 1.20.0 - - 8a9670d04 2024-08-24T03:10:29+02:00 dependency: bump google.golang.org/genproto/googleapis/rpc from v0.0.0-20240723171418-e6d459c13d2a to v0.0.0-20240814211410-ddb44dafa142 - - d23c2c7a1 2024-08-24T03:10:29+02:00 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.21.0 to 2.22.0 - - a966c0716 2024-08-22T14:42:18Z migrate experimental-initial-corrupt-check flag to feature gate. - - 8db31b666 2024-08-22T15:58:33+08:00 CHANGELOG: update changes for issue 18089 - - bcf9ac1b3 2024-08-19T17:35:44Z build(deps): bump github/codeql-action from 3.26.0 to 3.26.3 - - e653d1ed3 2024-08-18T12:20:41+05:30 CHANGELOG: Add entry for etcdutl hashkv command. - - fbd4fa46f 2024-08-16T15:33:38-07:00 github/workflows: remove e2e jobs - - 6cf872972 2024-08-16T21:37:53+08:00 Revert "Disable robustness test detection of #18089 to allow detecting other issues" - - 84533d5e8 2024-08-16T11:04:06+01:00 test: extend leaseRevoke and leaseRenew test to support 5 members cluster - - 56e5b1d5b 2024-08-16T10:58:30+01:00 deleted infra-guide - - f194f4723 2024-08-15T13:57:06+02:00 Reduce number of concurrent clients to 8 and compactions to avoid flakes - - 4b8e78460 2024-08-14T15:51:35+01:00 Update changelog for the performance regression caused by ensureLeadership in leaseRenew - - 7f1e86055 2024-08-12T17:44:47Z build(deps): bump github/codeql-action from 3.25.15 to 3.26.0 - - d6cb7ba03 2024-08-12T17:44:37Z build(deps): bump actions/upload-artifact from 4.3.5 to 4.3.6 - - 58ec6b2bd 2024-08-12T16:03:40+05:30 Add `genproto` error troubleshoot step for manual bumps - - b8b0cf83d 2024-08-09T17:02:02+01:00 Skip leadership check if the etcd instance is active processing heartbeat - - 6208673eb 2024-08-09T10:17:01+02:00 dependency: bump golang.org/x/sys from 0.23.0 to 0.24.0 - - 7fba2ab3d 2024-08-08T23:14:24+02:00 Update release-3.4 and release-3.5 CHANGELOG with go version bump - - fe9218d29 2024-08-08T21:47:10+02:00 dependency: bump golang.org/x/text from 0.16.0 to 0.17.0 - - 8eb943d2a 2024-08-08T21:43:41+02:00 dependency: bump golang.org/x/net from 0.27.0 to 0.28.0 - - 5c290d110 2024-08-08T21:40:19+02:00 dependency: bump golang.org/x/crypto from 0.25.0 to 0.26.0 - - 794d1b64f 2024-08-08T21:30:09+02:00 go version bump from 1.22.5 to 1.22.6 - - f071fde89 2024-08-08T21:24:07+02:00 dependency: bump golang.org/x/sys from 0.22.0 to 0.23.0 - - cfe806aab 2024-08-08T21:24:07+02:00 dependency: bump golang.org/x/time from 0.5.0 to 0.6.0 - - 47f73f446 2024-08-08T21:24:07+02:00 dependency: bump golang.org/x/sync from 0.7.0 to 0.8.0 - - 4de9054ff 2024-08-08T21:24:07+02:00 dependency: bump github.com/alexfalkowski/gocovmerge from v1.3.9 to v.1.3.13 - - 1c95754df 2024-08-08T13:52:05+12:00 Remove arm64 robustness workflows. - - bbdc94181 2024-08-07T21:56:20+08:00 *: keep tombstone if revision == compactAtRev - - ee3365277 2024-08-07T21:28:10+08:00 *: update tests for watch API when compact on tombstone revision - - bd228cf6d 2024-08-05T13:46:51-07:00 migrate experimental-stop-grpc-service-on-defrag flag to feature gate. - - 30e2985ff 2024-08-05T17:57:24Z build(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5 - - 16fb3f652 2024-08-04T13:37:22+03:30 Create util for etcdctl, move helper of cobra from main package to etcdctl util, create normalizer of examples in util, add some more examples, change indent of etcdctl from "\t" to " " - - 2221d4668 2024-08-03T20:53:56+12:00 Keep release process up to date. - - 44b6c03ec 2024-08-02T09:24:49+02:00 Ensure proper gofail package version in robustness tests - - fdf8fde38 2024-08-01T21:19:03+02:00 Remove flake caused failpoint in watch disrupting progress notifies - - b7f08e01f 2024-08-01T14:06:57Z Update release.md to move the space limitation to the correct line - - 182639c40 2024-08-01T18:00:55+08:00 tests/e2e: check compactOnRev > tombstoneRevs[0] - - 6a17ce3ff 2024-07-31T15:06:45+05:30 fix genproto after *.proto file update - - 984100b3a 2024-07-31T14:16:18+05:30 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.20.0 to 2.21.0 - - cdb59b9ef 2024-07-31T05:41:57Z Update release.md based on 3.5.15 release: https://github.com/etcd-io/etcd/issues/18247#issuecomment-2240080965 - - 6f93af85d 2024-07-30T21:01:58+08:00 tests/e2e: add test cases related to HashKV - - cb1bcb717 2024-07-29T17:34:26Z build(deps): bump ossf/scorecard-action from 2.3.3 to 2.4.0 - - 3d8a0c9b7 2024-07-29T17:34:21Z build(deps): bump github/codeql-action from 3.25.13 to 3.25.15 - - 7a826062d 2024-07-29T13:33:28Z update wait_test indices - - 5f782c350 2024-07-27T21:41:40Z fix wait_time docs, tests for trigger deadline greater than or equal to wait deadline - - ce916fbb3 2024-07-26T15:31:38-07:00 tests: remove Dockerfile - - 5a02298ad 2024-07-25T15:39:08-07:00 github/workflows: set read-only default permissions to approve workflow - - 2e30c8340 2024-07-25T15:23:14-07:00 github/workflows: pin robutness tests dependencies - - 89551e13c 2024-07-25T15:13:20-07:00 dependency: Bumps golang.org/x/image from 0.11.0 to 0.18.0 - - 326166764 2024-07-24T17:34:36+05:30 dependency: bump gotest.tools/gotestsum from 1.11.0 to 1.12.0 - - 0e77563e3 2024-07-23T15:27:07-07:00 Add config file field for feature-gates flag. - - 6c98a9686 2024-07-23T14:53:09+02:00 Introduce Kubernetes KV interface to etcd client - - 378207da5 2024-07-23T09:56:26+12:00 Update release date for v3.5.15. - - f00ceb6c0 2024-07-22T17:47:22Z build(deps): bump github/codeql-action from 3.25.12 to 3.25.13 - - 7b355141d 2024-07-18T13:20:30-07:00 Add "server-feature-gates" flag. - - 8d61855cd 2024-07-18T20:49:52+05:30 dependency: bump go.opentelemetry.io/otel/sdk from 1.27.0 to 1.28.0 - - 1dac90c22 2024-07-18T20:39:39+05:30 dependency: bump golang.org/x/net from 0.26.0 to 0.27.0 - - 27e13a996 2024-07-18T20:27:06+05:30 dependency: bump golang.org/x/crypto from 0.24.0 to 0.25.0 - - 80f6f7197 2024-07-17T22:27:26+05:30 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.8 to 1.3.9 - - 88410bc46 2024-07-15T17:49:30Z build(deps): bump github/codeql-action from 3.25.11 to 3.25.12 - - 0db3e5012 2024-07-15T17:49:19Z build(deps): bump actions/setup-go from 5.0.1 to 5.0.2 - - f4e6f0bad 2024-07-15T17:49:14Z build(deps): bump aquasecurity/trivy-action from 0.23.0 to 0.24.0 - - 163917d85 2024-07-14T13:02:20+03:00 CHANGELOG/CHANGELOG-3.5.md: update changelog - - 4bf1861cb 2024-07-14T13:01:00+03:00 CHANGELOG/CHANGELOG-3.4.md: update changelog - - 5e178e228 2024-07-14T17:30:47+08:00 mvcc/*_test.go: should not use duplicate revision.Main for one key - - 2f9225a2a 2024-07-14T08:59:23+01:00 Update 3.5 changelog to cover the separated warning message for rejected client and peer connections - - 4f9cd336a 2024-07-13T15:54:46-07:00 marker: use released binary when running markdown lint - - b6c526202 2024-07-13T19:28:21+01:00 Differentiate the warning message for rejected client and peer connections - - 6325cce0a 2024-07-12T22:41:05-07:00 github: remove amd64 test actions - - 3dda3b849 2024-07-10T23:46:20+05:30 dependency: bump golang.org/x/sys from 0.21.0 to 0.22.0 - - e62ee34b8 2024-07-10T23:46:20+05:30 dependency: bump github.com/sivchari/tenv from 1.7.1 to 1.10.0 - - 3b269c59f 2024-07-10T23:46:20+05:30 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.52.0 to 0.53.0 - - cf5d69242 2024-07-10T23:46:03+05:30 dependency: bump go.opentelemetry.io/otel from 1.27.0 to 1.28.0 - - 8cd82fd37 2024-07-10T19:36:05+05:30 dependency: bump google.golang.org/grpc from 1.64.0 to 1.64.1 - - 1e620edf2 2024-07-10T15:33:54+03:00 client/v3/watch_test.go: test fmt metadata print - - 4286d6fdf 2024-07-10T12:51:48+03:00 client/v3/watch.go: use fmt for metadata printing - - 2ea3d1193 2024-07-08T17:42:55Z build(deps): bump distroless/static-debian12 from `4197211` to `ce46866` - - 25431d6b4 2024-07-08T17:24:27Z build(deps): bump actions/download-artifact from 4.1.7 to 4.1.8 - - c42bc8610 2024-07-08T17:24:24Z build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4 - - ccaea7eda 2024-07-05T22:24:37+08:00 client/pkg/testutil: update interestingGoroutines - - d820cd2b5 2024-07-05T01:27:30+08:00 etcdserver: change the snapshot + compact into sync operation - - 9b87477de 2024-07-04T00:30:12Z changelog: udpate changelog to reflect go version 1.21.12 bump. - - ddfa70fb5 2024-07-03T15:24:25-07:00 dependency: bump tools/mod google.golang.org/genproto/googleapis/rpc to v0.0.0-20240520151616-dc85e6b867a5 - - ba4b2bffe 2024-07-03T15:21:31-07:00 make: Include tools/mod when checking dependency versions - - 6dce6631d 2024-07-04T01:59:59+05:30 changed the scorecard badge link to the standard format - - c467a5783 2024-07-03T18:13:51Z Update CHANGELOG-3.5 - - cded6b0ac 2024-07-03T09:03:54-07:00 robustness: remove head rev match in validateGotAtLeastOneProgressNotify - - 5a8e77ffc 2024-07-03T14:30:59+05:30 dependency: bump github.com/prometheus/common from 0.54.0 to 0.55.0 - - 8f974669c 2024-07-03T05:07:03Z Bump Go version to 1.22.5: GO-2024-2963 fix. - - fc33323a5 2024-07-03T00:58:28+05:30 dependency: bump github.com/prometheus/common from 0.54.0 to 0.55.0 - - 708c3d8cf 2024-07-03T00:56:44+05:30 dependency: bump github.com/bgentry/speakeasy from 0.1.0 to 0.2.0 - - 07b35dd7e 2024-07-02T12:48:00-04:00 etcdctl: add support for filtering by {min,max} x {create,mod} x {revision} - - 7ed3359a8 2024-07-01T17:04:16Z build(deps): bump github/codeql-action from 3.25.10 to 3.25.11 - - c26156d08 2024-06-29T22:16:13-07:00 move fileutil.readDirWithSuffix to normal function - - 854010f41 2024-06-29T22:16:13-07:00 fileutil: improve control flow readability of purgeFile function - - e97bc3906 2024-06-29T15:00:04+05:30 Reduce client concurrency for high traffic robustness tests - - f0246a9f8 2024-06-29T17:39:06+12:00 Remove gsutil acl command for bucket permissions. - - 34361a1a8 2024-06-28T22:07:01-07:00 github: remove govulncheck action - - 396e2918f 2024-06-28T15:30:56-07:00 changelog/3.4: set 3.4.33 release date - - ec289a812 2024-06-28T12:12:01-07:00 Suppress noisy basic auth token deletion log - - 7dec366ac 2024-06-28T20:11:44+12:00 etcdclient: Clena up unnecessary nil Logger check - - c41e02f7b 2024-06-27T18:35:04+02:00 Add failpoint name to test name allowing us to track a per failpoint failures in testgrid - - ebf2cac6b 2024-06-27T14:51:12+05:30 tests/e2e: add e2e test to reproduce issue 18089 - - e7f51cbd5 2024-06-25T20:49:56+08:00 [3.5] CHANGELOG: support multiple values for allowed client and peer TLS identities - - 5be397a6a 2024-06-25T11:45:53+02:00 Fix a linter issue - - bfc4dc620 2024-06-25T11:23:58+02:00 dependency: bump github.com/google/yamlfmt from 0.12.1 to 0.13.0 - - bca81b945 2024-06-25T11:23:58+02:00 dependency: bump github.com/golangci/golangci-lint from 1.59.0 to 1.59.1 - - 1870222f4 2024-06-24T21:38:27+02:00 Separate persisted responses without knowing their revision to prevent duplicating state during linearization - - 35f4556b5 2024-06-24T20:41:32+02:00 Add tests for patching history to check output and return values - - 6414e7448 2024-06-24T17:56:43Z build(deps): bump aquasecurity/trivy-action from 0.22.0 to 0.23.0 - - 281f17734 2024-06-24T10:07:36+01:00 add verification on client.Sync to ensure the returned endpoints never empty - - 893f93e2b 2024-06-24T13:59:43+08:00 add embed.Config.GRPCAdditionalServerOptions into changelog - - 37fe67b32 2024-06-24T11:06:47+08:00 add changelog for bugfix 18164 prometheus metric register of walWriteSec - - 29b4ff2fd 2024-06-24T11:24:31+12:00 Bump shellcheck to latest 2024 release. - - 4fe227c46 2024-06-22T11:01:47+02:00 Disable robustness test detection of #18089 to allow detecting other issues - - c0076a788 2024-06-22T00:17:13+08:00 mvcc: fix typo - - a01656739 2024-06-19T09:02:17-07:00 dependency: bump google.golang.org/genproto/googleapis/api to v0.0.0-20240520151616-dc85e6b867a5 - - 4f13e7c2b 2024-06-19T09:02:17-07:00 dependency(client): bump golang.org/x/sys from v0.19.0 to v0.21.0 - - dfda61bbb 2024-06-19T09:02:17-07:00 make: fix verify-dep - - 9e7b94dea 2024-06-19T08:49:31+02:00 dependency: bump go.etcd.io/gofail from v0.1.1-0.20240517100945-baefa9867390 to v0.2.0 - - f21f074ba 2024-06-18T19:16:30+02:00 Use $(MAKE) instead of make - - 692e44a80 2024-06-18T14:03:39+01:00 Update the error message when client certificate isn't provided for secure metrics url - - 3e86af684 2024-06-18T18:18:54+08:00 remove unnecessary wait call - - 5c2422ba0 2024-06-18T13:44:40+05:30 tests/robustness: fix access of ChoiceWeight - - 2e04ee77b 2024-06-18T08:36:24+02:00 Avoid sending Compact request when LazyFS is enabled - - 497f1a45a 2024-06-18T07:28:43+08:00 license - - fff58bb80 2024-06-17T15:53:47-07:00 robustness: change mixedVersionOption to use ChoiceWeight. - - 45e7d5bab 2024-06-17T20:39:34Z build(deps): bump github/codeql-action from 3.25.8 to 3.25.10 - - 166d26b4e 2024-06-17T22:09:15+02:00 dependency: bump github.com/spf13/cobra from 1.8.0 to 1.8.1 - - a947aa0d3 2024-06-17T22:09:15+02:00 dependency: bump go.opentelemetry.io/proto/otlp from 1.2.0 to 1.3.1 - - 3899de4ee 2024-06-17T22:09:15+02:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.3.4 to 1.3.8 - - e60bccd4c 2024-06-17T21:51:40+02:00 dependency: bump github.com/google/yamlfmt from 0.11.0 to 0.12.1 - - fa835658e 2024-06-17T21:49:52+02:00 dependency: bump google.golang.org/protobuf from 1.34.1 to 1.34.2 - - 1bff41630 2024-06-17T17:31:10Z build(deps): bump actions/checkout from 4.1.6 to 4.1.7 - - 22f20a827 2024-06-17T21:09:24+08:00 test(e2e): add a case where client tls is missing for https metrics url - - a657f069a 2024-06-17T18:21:38+08:00 fix(server/embed): enforce non-empty client TLS if scheme is https/unixs - - 043096067 2024-06-15T15:47:13-07:00 Add run-govulncheck Makefile target - - 5e42ed9b2 2024-06-15T19:40:23+02:00 Reproduce issue #17529 - - 93873708a 2024-06-15T19:25:35+02:00 Upgrade gofail for sleep to not block deactivation - - ea46253b4 2024-06-15T10:11:34-04:00 Improve snapshot status - - 14e15bcac 2024-06-15T05:34:58Z Removes dependency on other k8s packages in featuregate pkg. - - 60e3f4546 2024-06-15T05:34:58Z Adds all feature_gate from component-base. - - 69ebaaebc 2024-06-15T05:34:58Z featuregate: adds EtcdServer.FeatureEnabled interface. - - aaa6e9ef8 2024-06-14T13:33:50-07:00 robustness: Separate compaction and LazyFS test scenario for cluster size 1. - - 84c68f391 2024-06-14T22:12:35+02:00 Update release-3.5 changelog - - 6ca3b6ba8 2024-06-14T23:22:14+05:30 Remove robustness presubmits and periodics workflows - - bc1aed193 2024-06-14T11:30:10+02:00 Fix govulncheck CI check on main branch - - d73cc2bb6 2024-06-13T10:20:32-07:00 tests/robustness: update documentation to reflect Prow migration - - 0b6529c46 2024-06-13T00:15:37-07:00 mvcc: fix typo - - 4a555fead 2024-06-13T15:12:58+08:00 bugfix: register of walWriteSec - - 1579c5772 2024-06-12T11:23:31+02:00 Update codecov config to support commenting code coverage in PRs - - 706c324c7 2024-06-12T09:45:47+02:00 dependency: bump golang.org/x/text from 0.15.0 to 0.16.0 - - 293d97975 2024-06-12T09:45:04+02:00 dependency: bump golang.org/x/net from 0.25.0 to 0.26.0 - - e1d7af5a0 2024-06-12T09:37:07+02:00 dependency: bump golang.org/x/crypto from 0.23.0 to 0.24.0 - - d9cb8b80f 2024-06-12T11:38:41+08:00 address the comment - - 59ba0d4eb 2024-06-10T17:32:50Z build(deps): bump github/codeql-action from 3.25.7 to 3.25.8 - - 90540f258 2024-06-10T17:32:26Z build(deps): bump aquasecurity/trivy-action from 0.21.0 to 0.22.0 - - 29abd6233 2024-06-07T16:39:35+08:00 introduce GRPCAdditionalServerOptions - - 5959110f4 2024-06-07T10:33:57+02:00 Implement Compaction support in robustness test - - 3c5684967 2024-06-07T10:24:52+02:00 Improve e2e error reporting - - e389b4cc4 2024-06-07T11:44:04+08:00 CHANGELOG: support multiple values for allowed client and peer TLS identities - - 7211d9fb9 2024-06-06T17:20:37-07:00 fix ts with no trailing zeros - - acc9d7c9f 2024-06-06T21:25:17+08:00 Support multiple values for allowed client and peer TLS identities - - fc1863086 2024-06-06T20:40:08+08:00 tests/robustness: unlock Delete/LeaseRevoke ops - - b8eeaacbc 2024-06-05T17:58:46+02:00 Ignore connection reset error when triggering a failpoint - - 2089857ab 2024-06-05T14:12:52+05:30 Bump Go version to 1.22.4: CVE 2024-24790 fix - - 06f2746fc 2024-06-04T10:47:54-07:00 test: update CouldSetSnapshotCatchupEntries to use 3.5.14. - - f77f42281 2024-06-03T22:15:31+02:00 dependency: bump github.com/prometheus/common from 0.53.0 to 0.54.0 - - d88a1b348 2024-06-03T17:16:24Z build(deps): bump github/codeql-action from 3.25.6 to 3.25.7 - - b107d2437 2024-06-02T00:07:50-04:00 cli: Add etcdutl snapshot hashkv command - - c1f5a445f 2024-05-31T09:22:52+02:00 Use Go 1.20 error joining instead of multierr - - 4dfae5dc6 2024-05-30T16:07:28+02:00 dependency: bump google.golang.org/genproto/googleapis/api from v0.0.0-20240513163218-0867130af1f8 to v0.0.0-20240520151616-dc85e6b867a5 - - 287a3a1a3 2024-05-30T15:19:23+02:00 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.26.0 to 1.27.0 - - a3f7d2a5d 2024-05-30T15:19:23+02:00 dependency: bump go.opentelemetry.io/otel/sdk from 1.26.0 to 1.27.0 - - 1ec63aa93 2024-05-30T15:19:23+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.51.0 to 0.52.0 and go.opentelemetry.io/otel from 1.26.0 to 1.27.0 - - 23c7abd05 2024-05-30T15:19:23+02:00 dependency: bump github.com/golangci/golangci-lint from 1.58.2 to 1.59.0 - - 4881e5367 2024-05-29T15:14:53-07:00 scripts/release: shallow clone repository - - 92d8cbe7b 2024-05-29T12:09:00-07:00 Update release date for v3.5.14 - - 5202b6aa8 2024-05-29T15:30:23+05:30 Add build subtargets based on arch - - 33030f1c2 2024-05-27T17:50:47Z build(deps): bump aquasecurity/trivy-action from 0.20.0 to 0.21.0 - - 63502df4d 2024-05-25T14:44:39+05:30 CHANGELOG: add support AllowedCN and AllowedHostname - - 4c7772691 2024-05-24T18:17:37Z Implement flag --experimental-set-member-localaddr - - 32726e724 2024-05-23T06:36:50+12:00 Update documentation for migration to prow. - - 33f3b63ac 2024-05-23T06:06:48+12:00 Complete migration of verify workflow to prow. - - 8dcb198f1 2024-05-22T09:25:46-07:00 workflow: change the target of make test-robustness to test-robustness-main - - aaa9f15f2 2024-05-22T18:00:15+02:00 Increase robustness test request timeout to 200ms - - 0f94c2ca4 2024-05-21T17:42:12Z robustness: add mix version scenario with fixed leader. - - b54d7552a 2024-05-21T16:57:53Z robustness: add mix version option in exploratoryScenarios. - - cde6cd006 2024-05-21T16:57:48Z e2e: add flag to pass specific binary path for last release. - - 3fb36d9ae 2024-05-21T18:46:35+02:00 Allow gofail trigger to fail as long as the member stops running - - 9431e3a95 2024-05-20T22:45:14+02:00 dependency: bump google.golang.org/grpc from 1.63.2 to 1.64.0 - - e79a11f78 2024-05-20T22:30:41+02:00 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.19.1 to 2.20.0 - - 14c55a0d3 2024-05-20T22:30:41+02:00 dependency: bump github.com/golangci/golangci-lint from 1.57.2 to 1.58.2 - - 8c1b08b69 2024-05-20T17:59:19Z build(deps): bump actions/checkout from 4.1.5 to 4.1.6 - - db58ad113 2024-05-20T17:59:10Z build(deps): bump github/codeql-action from 3.25.5 to 3.25.6 - - 9e5b06525 2024-05-20T10:11:41-07:00 Add siyuanfoundation to reviewers. - - 043780baa 2024-05-19T21:36:49-07:00 Add ivanvc to reviewers - - 769500124 2024-05-19T13:59:25Z embed: fix typo in comment - - 0232686ca 2024-05-18T19:01:09Z etcdserver: add server range duration metrics - - 48f511700 2024-05-18T12:10:07+02:00 dependency: bump github.com/fatih/color from 1.15.0 to 1.17.0 - - a66cf5666 2024-05-17T23:53:06+02:00 dependency: bump github.com/prometheus/client_golang from 1.19.0 to 1.19.1 - - 59864bc2c 2024-05-17T15:08:51-04:00 rebase with latest main - - dfc34284f 2024-05-16T21:55:25+05:30 changelog add 3.4 and 3.5 go 1.21.10 - - 8eb91d0e1 2024-05-14T20:19:08+05:30 add error constants in validate pkg - - b915323be 2024-05-14T15:18:30+05:30 split out subroutine from fix.sh to makefile target - - d8de8a4a7 2024-05-13T13:36:07-07:00 dependency(gh_action): bump github/codeql-action from 3.25.3 to 3.25.5 - - 7ecef0061 2024-05-13T13:29:54-07:00 github: fix version from codeql-action/upload-sarif - - bb8070199 2024-05-13T17:37:05Z build(deps): bump actions/checkout from 4.1.4 to 4.1.5 - - 2464078f0 2024-05-13T17:36:57Z build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3 - - 11a4e02ba 2024-05-13T17:36:44Z build(deps): bump aquasecurity/trivy-action from 0.19.0 to 0.20.0 - - d8bb19327 2024-05-13T12:08:42+02:00 Prevent picking a failpoint that waiting till snapshot that doesn't support lower snapshot catchup entries but allow reproducing issue #15271 - - c81e74794 2024-05-12T22:27:19+12:00 Automate labels for tools pull requests. - - 1b006577d 2024-05-12T22:24:21+12:00 Automate labels for contrib pull requests. - - f0a934ade 2024-05-12T22:24:21+12:00 Automate labels for etcdctl & etcdutl pull requests. - - 83d28a17a 2024-05-12T22:24:21+12:00 Automate labels for documentation pull requests. - - 0d51929c9 2024-05-12T22:24:21+12:00 Automate labels for clientv3 pull requests. - - 2fa2613ca 2024-05-12T22:24:21+12:00 Automate labels for security pull requests. - - 2e70fc7d1 2024-05-12T22:24:21+12:00 Automate labels for tests pull requests. - - 5fcc0fe0a 2024-05-11T23:19:39+08:00 fix: Use apt -o APT::Update::Error-Mode=any for updating package lists - - 7185ee887 2024-05-10T06:01:40-04:00 changelog: add note from #17977 backport - - 6038f391f 2024-05-10T03:27:35+05:30 Upgrade go to 1.22.3. - - 3375e89b1 2024-05-09T13:58:29+02:00 Fix issue reported by static analyzer - - 69ca6e96f 2024-05-09T11:48:14+02:00 dependency: bump golang.org/x/net from 0.24.0 to 0.25.0 - - 1a1820562 2024-05-09T11:48:14+02:00 dependency: bump golang.org/x/crypto from 0.22.0 to 0.23.0 - - 41ba741db 2024-05-09T11:48:14+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.50.0 to 0.51.0 - - ee9af3c56 2024-05-09T11:48:14+02:00 dependency: bump google.golang.org/protobuf from 1.33.0 to 1.34.1 - - beb5e85dc 2024-05-08T21:52:49+08:00 tools/benchmark/cmd: eliminate custom max function - - f5c0e785a 2024-05-08T14:29:28+02:00 Fix caching by not depending on PHONY target in non-PHONY target - - b883f839f 2024-05-08T12:29:55+02:00 Add tests to serializable operations validation - - be9758e2b 2024-05-08T11:31:28+02:00 Update the robustness README and fix the #14370 reproduction case - - 7181c7532 2024-05-08T10:40:38+02:00 Relax assumptions about all client request persisted in WAL to only require first and last request to be persisted - - b31f23e11 2024-05-07T22:39:16+02:00 config: support AllowedCN and AllowedHostname through config file - - bcf6a8c65 2024-05-07T16:36:07+02:00 update changelog for experimental-stop-grpc-service-on-defrag - - 6b517bfb4 2024-05-07T22:36:05+08:00 pkg/report: make use of builtin min/max function - - f6a35f878 2024-05-07T17:52:56+05:30 .*: sync go toolchain version and add ability to verify versions - - e094139b0 2024-05-07T17:52:56+05:30 scripts: default to using .go-version's version for tests and builds - - 50f906299 2024-05-06T17:06:58Z build(deps): bump actions/setup-go from 5.0.0 to 5.0.1 - - dd79332cf 2024-05-06T09:53:39-07:00 robustness: add 2 more log lines when persistClientReports - - a54b08016 2024-05-06T16:49:37+02:00 Update changelog with bbolt bumps - - 7a383beba 2024-05-06T19:53:29+05:30 dependency: bump go.etcd.io/bbolt from v1.4.0-alpha.0 to v1.4.0-alpha.1 - - aff808ff0 2024-05-06T08:37:14+02:00 Update changelog with quota to endpoint status response - - cdf03d641 2024-05-05T20:16:09-07:00 github/workflows: remove golangci-lint-action step from static-analysis - - 0c134dd2c 2024-05-04T09:56:50-07:00 make: fix running fix target after verify - - 813e0865f 2024-05-03T21:43:03+02:00 bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.25.0 to 1.26.0 - - f6fa1daab 2024-05-03T10:41:17-07:00 tools/testgrid-analysis: fix var-naming warnings - - 6b92a80de 2024-05-03T10:41:14-07:00 tools/golangci: enable var-naming linter rule - - 82113ab06 2024-05-03T18:27:52+02:00 dependency: bump go.opentelemetry.io/otel/trace from 1.25.0 to 1.26.0 - - ccb4ef76e 2024-05-03T11:34:55+01:00 typo: bootstrapedCluster -> bootstrappedCluster - - 060adbb89 2024-05-02T16:15:05-04:00 Add etcd cloud project name - - 8fba624b1 2024-05-03T07:35:06+12:00 Update jmhbnz to approver following promotion. - - 030066cdb 2024-05-01T22:26:50+02:00 Chore: Use chain interceptors from grpc package - - c4e3b61a1 2024-05-01T19:20:22+02:00 Record operation from failpoint injection - - 27465ddf7 2024-04-30T12:02:24-07:00 changelog/3.4: add fix for member list not updated when node goes down - - e664a53f0 2024-04-30T06:00:03Z build(deps): bump github/codeql-action from 3.25.2 to 3.25.3 - - f6ab2043a 2024-04-29T22:54:12-07:00 github/workflows: skip robustness tests in forks - - 4d2caf569 2024-04-29T17:39:08Z build(deps): bump actions/download-artifact from 4.1.6 to 4.1.7 - - 5293994e8 2024-04-29T17:39:05Z build(deps): bump actions/checkout from 4.1.3 to 4.1.4 - - dcfc447fd 2024-04-29T17:38:58Z build(deps): bump golangci/golangci-lint-action from 4.0.0 to 5.1.0 - - e50fe39d9 2024-04-30T00:28:06+08:00 pkg/netutil: avoid type conversion between uint8 and int for GetDefaultHost - - 0bd0c4a21 2024-04-29T23:20:45+08:00 github workflow: drop measure test flakiness - - 133576899 2024-04-28T05:49:24+08:00 gofail: show error messages returned by gofail HTTP endpoints - - 1e7dd97e3 2024-04-27T12:04:27+02:00 Add LeaseRevoke request to WAL parsing - - a988f7edc 2024-04-26T20:08:05+08:00 script/test_lib: add description about modules - - e3c181230 2024-04-26T20:08:05+08:00 testgrid-analysis: tab is unused & remove - - 6138a4cbb 2024-04-26T20:08:05+08:00 testgrid-analysis: increment-decrement fixed - - aa53afdce 2024-04-26T20:07:59+08:00 test: add tools/{rw-heatmaps,testgrid-analysis} to module_dirs - - 30d759891 2024-04-25T15:31:53-04:00 Update Changelog for v3.4.32 - - 2de719dea 2024-04-25T21:11:37+02:00 Use WAL persisted request to validate watch - - 7253a317c 2024-04-25T09:36:31-07:00 github workflow: remove failfast in robustness nightly. - - dafadd13c 2024-04-25T23:34:52+08:00 all: don't convert byte slice to string when using verb %s - - bdcff246c 2024-04-25T16:44:20+02:00 add quota to endpoint status response - - 242f5d60a 2024-04-24T14:40:59-07:00 Fix deprecation comments from addressing var-naming work - - 3c3b76cea 2024-04-24T12:36:55-07:00 robustness: not overwrite results dir by giving each dir a unique name. - - 897f9e9ce 2024-04-24T18:48:30+08:00 CHANGELOG: update 3.4 and 3.5 with fix - - d3277571c 2024-04-24T07:27:28Z build(deps): bump github/codeql-action from 3.25.0 to 3.25.2 - - fce8949dd 2024-04-23T20:13:02-07:00 tools/etcd-dump-logs: address var-naming lint warnings - - 7300abc55 2024-04-23T20:09:06-07:00 tests/common: address var-naming lint warnings - - bc3f10957 2024-04-23T20:08:40-07:00 etcdutl: address var-naming lint warnings - - 94c83a962 2024-04-24T11:08:33+08:00 server/storage/mvcc: should update currentRev in revMu - - 9cff96088 2024-04-23T17:44:57-07:00 Update CHANGELOG - 3.4, 3.5, 3.6 - fix PRISMA-2023-0056 - - 379a8b79f 2024-04-23T09:31:19-07:00 fix version order when calling IsValidClusterVersionChange in UpdateCapability. - - da7047356 2024-04-23T09:27:52-07:00 Update 3.4 changelog for 2 new downgrade cases. - - 856847d89 2024-04-23T14:44:51+05:30 tests: set GOTOOLCHAIN var for report validation - - 9fcde3744 2024-04-23T10:19:05+02:00 Persist member data with lazyfs enabled - - a2bf8d7e8 2024-04-22T17:12:15-07:00 server/config: address golangci var-naming issues - - 36144993b 2024-04-22T17:54:43Z build(deps): bump actions/checkout from 4.1.1 to 4.1.3 - - 58d88236c 2024-04-22T17:54:22Z build(deps): bump actions/download-artifact from 4.1.4 to 4.1.6 - - 669a03103 2024-04-22T17:54:19Z build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.3 - - b010ae0b1 2024-04-22T19:44:58+02:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.2.6 to 1.3.4 - - 45eb0110b 2024-04-22T19:44:58+02:00 dependency: bump golang.org/x/sync from 0.6.0 to 0.7.0 - - f696c4c74 2024-04-22T19:44:58+02:00 dependency: bump github.com/prometheus/common from 0.52.3 to 0.53.0 - - b6b7a1a3b 2024-04-22T10:27:54-07:00 refactor IsValidVersionChange. - - 9e938abd9 2024-04-21T23:14:29+02:00 dependency: bump golang.org/x/net from 0.23.0 to 0.24.0 - - 80c5690bb 2024-04-21T22:58:17+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.49.0 to 0.50.0 - - a39275875 2024-04-21T22:54:47+02:00 dependency: bump github.com/prometheus/client_model from 0.6.0 to 0.6.1 - - 81d7b2cb3 2024-04-21T22:46:41+02:00 dependency: bump github.com/prometheus/common from 0.51.1 to 0.52.3 - - fa9e9504a 2024-04-21T20:49:49+02:00 Handle watch responses with error - - a2156a0f9 2024-04-21T23:28:51+08:00 server/proxy/tcpproxy: use net.JoinHostPort rather than formatAddr - - 2b1be8fd8 2024-04-21T13:27:06+01:00 update the changelog for the change on compaction log on boostrap - - 9ea234913 2024-04-21T18:12:38+08:00 server/storage: update currentRev if scheduledCompact > currentRev - - 717339115 2024-04-21T18:12:00+08:00 tests/e2e: reproduce #17780 - - f285330d4 2024-04-20T10:34:51+02:00 Don't require minimal for failpoint injection period - - 964680c8d 2024-04-19T10:42:54+02:00 Validate delivery of events between progress notifies - - 2e5188f61 2024-04-18T08:30:39-06:00 server/embed: address golangci var-naming issues - - 6b0b4ce2b 2024-04-18T14:47:11+02:00 Increase test timeout (twice of sleep interval). - - c2982e15f 2024-04-18T11:26:28+02:00 Revert checking connected since inclusively. - - b173a603b 2024-04-18T11:03:10+02:00 Update CHANGELOG 3.4 and 3.5 - ignore raft messages if member id mismatch - - 0a1bc1208 2024-04-17T16:33:28-06:00 server/embed: address golangci var-naming issues - - aafe22951 2024-04-18T02:38:19+08:00 server/auth: simplify code for isValidPermissionRange - - c64c996c0 2024-04-17T07:55:24+02:00 Revert quorum calculation: `(active - 1) < 1+((len(m)-1)/2)` calculates quorum after a member is deleted. - - 3b16aae94 2024-04-17T07:55:24+02:00 Fix remove member failed. - - dc187ce6e 2024-04-16T09:17:40+02:00 Validate bookmarkable checks the last event before progress notify - - 842a0f3a3 2024-04-16T13:59:41+08:00 tests: fix some typos in comments - - 94a47a7cb 2024-04-15T20:23:51+02:00 Resumable handles watch with revision zero - - 042e7d1a0 2024-04-15T20:05:08+02:00 Add filter validation to ensure watch only includes events within selector - - 692637421 2024-04-15T17:28:56Z build(deps): bump github/codeql-action from 3.24.10 to 3.25.0 - - a54098dee 2024-04-15T14:16:18+01:00 Update the compaction log when bootstrap and update compact's signature - - 9ac964d1c 2024-04-15T13:56:19+01:00 Add verification that the revision shouldn't decrease on bootstrap - - a95a30769 2024-04-14T21:38:03+02:00 Add tests to watch validation - - 569693be8 2024-04-14T12:09:38+02:00 Utilize WAL to patch operation history - - 2e900c304 2024-04-13T13:56:56+01:00 Enhance the etcd-dump-db: reuse revision in package mvcc - - ecb52d7d4 2024-04-13T11:46:58+08:00 server/etcdmain: eliminate deprecated tlsConfig.BuildNameToCertificate() - - cf66d0f64 2024-04-12T17:14:19-04:00 etcdserver: updated pre-vote flag description - - b03368485 2024-04-12T12:39:38-07:00 testgrid: print out all failed tests for visibility. - - d0bf8ddca 2024-04-12T16:18:31+02:00 Improve description for Kubernetes CAS operations - - cadfc407e 2024-04-12T15:01:17+02:00 Remove limit from read requests after a failed write - - f8de338ab 2024-04-12T14:18:22+02:00 Add explicit checks for assumptions in robustness test validation - - d602b9f4a 2024-04-11T17:53:48Z test: refactor mix_version_test. - - 718d5ba2b 2024-04-11T09:36:17+02:00 Calculate request success rate to provide signal to performance debugging - - ae7f79fd6 2024-04-11T09:36:17+02:00 Refactor append from appendFailed and appendSuccesfull - - 64eaf5ef0 2024-04-11T07:50:48+02:00 dependency: bump go.opentelemetry.io/otel/metric from 1.24.0 to 1.25.0 - - ecfc139f0 2024-04-11T07:49:18+02:00 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.24.0 to 1.25.0 - - 65130c6d2 2024-04-10T21:11:46+02:00 Refactor merge succesfull and failed operation in history - - 229275d46 2024-04-10T10:33:19+02:00 Refactor appendSuccesful and appendFailed methods to match - - c8628919b 2024-04-10T09:55:21+02:00 dependency: bump google.golang.org/grpc from 1.63.0 to 1.63.2 - - 7dfcc6006 2024-04-09T15:46:12-07:00 tools/rw-heatmaps: add local gitignore file - - a956f8efa 2024-04-09T15:37:25-07:00 tools/rw-heatmaps: allow overriding running parameters - - 0a2d2f41e 2024-04-09T12:01:52-07:00 dependency(gh_action): bump upload and download artifact from 3 to 4 - - ad86cb4d1 2024-04-09T18:00:56+02:00 documentation: improve triage_prs.md - - 60d9d8359 2024-04-09T18:00:56+02:00 documentation: improve triage_issues.md - - 3d3be326a 2024-04-09T18:00:56+02:00 documentation: improve roadmap.md - - 880e61f0e 2024-04-09T18:00:56+02:00 documentation: improve reporting_bugs.md - - 6c8697fc6 2024-04-09T18:00:56+02:00 documentation: improve release.md - - 6c1cb348d 2024-04-09T18:00:56+02:00 documentation: improve modules.md - - fa1801cbc 2024-04-09T18:00:56+02:00 documentation: improve logging.md - - fade580c6 2024-04-09T18:00:56+02:00 documentation: improve local_cluster.md - - 7b77a0009 2024-04-09T18:00:56+02:00 documentation: improve features.md - - 241f23420 2024-04-09T18:00:56+02:00 documentation: improve dependency_management.md - - 4683de480 2024-04-09T18:00:56+02:00 documentation: improve community-membership.md - - c4b44c9e8 2024-04-09T18:00:56+02:00 documentation: improve branch_management.md - - 39ccdb0b9 2024-04-09T18:00:56+02:00 documentation: improve CONTRIBUTING.md - - 6e0a4c7f8 2024-04-09T18:00:49+02:00 documentation: fix typos in documentations and contribution guides - - 41ac7e33a 2024-04-09T15:59:58+02:00 Don't cache test-robustness-reports - - ebeb5bb80 2024-04-09T12:24:57+02:00 dependency: bump go.opentelemetry.io/proto/otlp from v1.1.0 to v1.2.0 - - caf21a94c 2024-04-09T12:24:57+02:00 dependency: bump golang.org/x/crypto from 0.21.0 to 0.22.0 - - 519b2c06e 2024-04-09T12:24:57+02:00 dependency: bump google.golang.org/grpc from 1.62.1 to 1.63.0 - - bd044166c 2024-04-08T22:08:59+02:00 dependency: bump github.com/golangci/golangci-lint from 1.57.1 to 1.57.2 - - 184a9f1c8 2024-04-08T17:46:30Z build(deps): bump github/codeql-action from 3.24.9 to 3.24.10 - - 0e911484c 2024-04-08T17:13:48Z build(deps): bump distroless/static-debian12 from `8cbe18a` to `4197211` - - 6cb4c3f90 2024-04-08T16:58:12+02:00 Document re-evaluating existing robustness test reports - - 90152fe41 2024-04-08T16:55:39+08:00 fix: close profile in the mvccPutFunc func - - 3a23994fb 2024-04-07T15:13:59+02:00 Make no failpoint error more readable - - 723f45feb 2024-04-07T16:18:02+08:00 CHANGELOG:add wal write system call metrics observation - - e2bb8c698 2024-04-06T12:28:57+02:00 Limit a timeout in testing robustness validation - - e52d157c8 2024-04-05T12:01:17-07:00 dependency: Bumps google.golang.org/grpc from 1.57.0 to v1.62.1 - - 41baca8a9 2024-04-05T12:00:51-07:00 dependency: bump golang.org/x/net from 0.22.0 to 0.23.0 - - 7c64dcb0d 2024-04-05T11:53:42-07:00 dependency: bump google.golang.org/protobuf from 1.31.0 to 1.33.0 - - fd8326a50 2024-04-05T21:45:17+08:00 CHANGELOG: update for LeaseTimeToLive returns error if leader changed - - 0a8a95f80 2024-04-05T10:29:21+02:00 Increase timeout for deactivating failpoint - - 27a6dd0ca 2024-04-05T07:11:19+08:00 tools/benchmark/cmd: don't panic with nil values in hashKV function - - 6f8cac308 2024-04-04T21:03:44+02:00 Update CHANGELOG 3.4 and 3.5 - initialization for epMu/mu in client context - - 5cd14a603 2024-04-04T11:17:06-07:00 Revert "tests: temporary disable coverage redesign Go experiment" - - 034574f43 2024-04-04T11:06:37+02:00 Bump go toolchain version to address CVE-2023-45288 - - 12fa1bb94 2024-04-03T19:21:22+07:00 server/storage: change deprecated bolt error to new error package - - daf893da6 2024-04-03T16:14:34+08:00 Makefile: perfect .PHONY - - 156096a66 2024-04-03T06:11:44Z changelog: add requests retry when receiving ErrGPRCNotSupportedForLearner - - f6eda9457 2024-04-02T22:16:01+02:00 Replace run.skip-files with issues.exclude-files in golangci config - - 4e639e7e9 2024-04-02T19:09:08+05:30 Add trivy scan as a job in release workflow - - a23507080 2024-04-01T21:57:11-07:00 tests/e2e: ignore discovery tests when cluster_proxy tag is set - - fc8568a43 2024-04-01T22:25:05Z nit: Fix trailing whitespace in etcdmain/help.go - - 5f5fddf50 2024-04-01T17:18:45Z build(deps): bump distroless/static-debian12 from `6dcc833` to `8cbe18a` - - bf44390e7 2024-04-01T09:41:48-07:00 Add measure-testgrid-flakiness workflow - - 3f37cd2d7 2024-04-01T09:41:42-07:00 Add script to detect flaky tests in testgrid. - - caa523f29 2024-04-01T18:36:27+05:30 Fix yamllint - - bdc261a58 2024-04-01T18:27:02+05:30 Add trivy scan action for current branch HEAD - - 5766aaf24 2024-04-01T16:19:08+08:00 changelog: change livez/readyz HTTP endpoints to v3.5.11 - - a9e4e2a24 2024-04-01T08:03:53+13:00 Improve release documentation. - - 06b50370f 2024-03-31T23:37:30+08:00 client/pkg/testutil: add shouldSkip func for interestingGoroutines - - b82f882c3 2024-03-31T10:09:51+13:00 Update release script to use ssh. - - 229ceb3a7 2024-03-30T23:59:07+08:00 client/pkg/testutil: eliminate copyToInterface function - - 747cc7bd7 2024-03-30T08:49:49+13:00 Update release date for v3.5.13. - - fa2c652b1 2024-03-28T15:13:50-07:00 add 3.4 changelog of adding downgrade support. - - 0d832ec19 2024-03-27T10:26:40-07:00 tools/mod: remove reference to github.com/mikefarah/yq/v4 - - d43738a49 2024-03-27T10:12:42-07:00 server/storage: address golangci var-naming issues - - 0a54362cc 2024-03-27T17:03:31Z add key dedupe when a write buffer writeback to an empty read buffer bucket. - - 7be360684 2024-03-27T17:03:31Z Add tx buffer test case of unordered key writes. - - 4346a43ce 2024-03-27T17:03:26Z Add benchmark tests for buffer writeback function. - - 8fb26a2c4 2024-03-26T16:04:12-07:00 tests/framework: remove (*Member) GRPCURL() - - d3bb6f688 2024-03-26T18:55:01+08:00 *: LeaseTimeToLive returns error if leader changed - - f3daf5e04 2024-03-26T18:49:50+08:00 all: make regexp.Regexp variables global when not using configuration methods - - 97efc2ade 2024-03-26T17:26:02+08:00 feat: observe wal write at one time - - 097639896 2024-03-25T16:27:05-07:00 tests/robustness: address golangci var-naming issues - - b7488d435 2024-03-25T16:20:18-07:00 tests/framework: address golangci var-naming issues - - 139d9c28b 2024-03-25T14:42:13-07:00 dependency: bump github.com/prometheus/common from 0.50.0 to 0.51.1 - - 860c6e03f 2024-03-25T14:40:32-07:00 dependency: bump github.com/mikefarah/yq/v4 from 4.40.7 to 4.43.1 - - 55f9a963b 2024-03-25T14:34:52-07:00 dependency: bump github.com/cloudflare/cfssl from 1.6.4 to 1.6.5 - - 938e1fbc6 2024-03-25T17:19:50Z build(deps): bump github/codeql-action from 3.24.8 to 3.24.9 - - bc31162cc 2024-03-25T12:17:47+08:00 all: call Close() after reading http.Response.Body - - fbda59186 2024-03-25T10:34:44+08:00 fix some typos - - 9ac4f33be 2024-03-21T16:03:48-07:00 tests/e2e: address golangci var-naming issues - - 7b7e2e29d 2024-03-22T01:41:57+13:00 dependency: bump go.uber.org/zap from 1.26.0 to 1.27.0. - - 5568f170d 2024-03-22T01:35:48+13:00 dependency: bump github.com/golangci/golangci-lint from 1.55.2 to 1.57.1. - - 0cf5da62c 2024-03-22T01:22:58+13:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.48.0 to 0.49.0. - - ebbd23582 2024-03-21T20:52:21+13:00 Update date of v3.4.31 release. - - 489890826 2024-03-20T22:31:31-07:00 tests/integration: address golangci var-naming issues - - aeecfa00b 2024-03-20T22:24:52-07:00 tests/common: address golangci var-naming issues - - 66f56d71e 2024-03-20T21:12:12-07:00 server: address golangci var-naming issues - - ec9b3f375 2024-03-19T18:23:40-07:00 update 3.4 and 3.5 CHANGELOG of watch event loss after compaction fix - - 562026828 2024-03-20T08:34:21+08:00 Let dapendabot to auto-update docker for release 3.4&3.5. - - 14523bdc2 2024-03-18T17:18:29-07:00 etcdserver: rename MemberId() to MemberID() to address var-naming - - c613b78e6 2024-03-18T17:17:07-07:00 etcdserver: address golangci var-naming issues - - 0ffdc0819 2024-03-19T06:48:54+13:00 Refresh community meeting docs - - 8ecfac9d9 2024-03-18T17:39:09Z build(deps): bump distroless/static-debian12 from `0d6ada5` to `6dcc833` - - d8fb3e212 2024-03-18T17:32:46Z build(deps): bump github/codeql-action from 3.24.6 to 3.24.8 - - 64c1acd9b 2024-03-19T00:31:17+13:00 Enable vmmeter to compare performance for robustness runners. - - b4070a28f 2024-03-19T00:27:53+13:00 Add 4 more cpu cores to arm64 robustness test workflows. - - bbd7d680d 2024-03-17T15:14:41Z Update format error for candidate links - - f5da94800 2024-03-17T09:13:49Z Update release guide and setup a pool of release candidates - - 8a497794d 2024-03-16T14:29:28-04:00 Use etcd maintainers ML for security related discussion - - 71f7db50e 2024-03-16T11:34:02+03:30 flaky: fix jwt test with increasing ttl - - 2190b0f1c 2024-03-15T20:37:53-07:00 api: address golangci var-naming issues - - 405862e80 2024-03-15T14:22:37-07:00 Fix event loss after compaction - - ab2525739 2024-03-15T10:21:44Z added changelog for the progress notification issue - - d98ff0d4f 2024-03-14T21:17:37-07:00 pkg: address golangci var-naming issues - - 578b784dc 2024-03-14T20:47:32-07:00 client: address golangci var-naming issues - - ef38180ae 2024-03-12T11:12:07-07:00 dependency: bump github.com/rivo/uniseg from 0.2.0 to 0.4.7 - - 7a84cbb45 2024-03-11T20:30:41+01:00 Improve watch latency benchmark - - 0024569c7 2024-03-11T11:50:27-07:00 dependency: bump github.com/stretchr/testify from 1.8.4 to 1.9.0 - - 9f5671d11 2024-03-11T11:48:03-07:00 dependency: bump golang.org/x/sys from 0.17.0 to 0.18.0 - - 3996eb5a3 2024-03-11T11:41:17-07:00 dependency: bump google.golang.org/grpc from 1.62.0 to 1.62.1 - - 7fae54b30 2024-03-11T11:32:03-07:00 dependency: bump github.com/prometheus/common from 0.49.0 to 0.50.0 - - 6103504d4 2024-03-11T12:11:09+01:00 Fix progress notification for watch that doesn't get any events - - 1576e2e5a 2024-03-09T19:26:29-08:00 tools/rw-heatmaps: reimplement in golang - - da7ab15f8 2024-03-09T15:07:33-08:00 tests: temporary disable coverage redisign Go experiment - - a9cfdfd88 2024-03-08T13:40:23-08:00 changelog: add google.golang.org/protobuf bump to v1.33.0 - - ebdb88248 2024-03-08T13:38:45-08:00 changelog: remove line from compiling with go 1.21.6 - - bb44958aa 2024-03-08T21:24:07+13:00 Update golang minor version policy. - - b730b3a3e 2024-03-08T15:54:25+08:00 changelog: add 3.4 and 3.5 note about go 1.21.8 - - e5029a3f6 2024-03-07T19:02:37Z Add patch version release criterion - - 0c6b6ac95 2024-03-07T09:13:28-08:00 dependency: bump google.golang.org/protobuf from 1.32.0 to 1.33.0 - - 04ef9dcef 2024-03-07T09:13:28-08:00 dependency: bump github.com/prometheus/common from 0.47.0 to 0.49.0 - - 60da279da 2024-03-07T09:13:28-08:00 dependency: bump go.opentelemetry.io/otel/sdk from 1.23.1 to 1.24.0 - - b555c9e36 2024-03-07T09:13:24-08:00 dependency: bump github.com/google/yamlfmt from 0.10.0 to 0.11.0 - - bb4b70bbb 2024-03-06T17:15:36-05:00 Migrate to go1.22 - - a8c743faf 2024-03-05T19:49:49Z Add election test with auth enabled - - 796859cde 2024-03-04T17:26:41Z build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 - - 46d59a2e6 2024-03-04T21:22:19+07:00 etcdserver: skip when detect a removed peer - - e2d159f08 2024-03-01T11:47:25-08:00 Add a flaky test section to contributor guide. - - e0955afa4 2024-02-28T21:08:42+13:00 depdendency: bump google.golang.org/grpc from 1.61.1 to 1.62.0. - - 170948f68 2024-02-28T21:03:45+13:00 depdendency: bump go.opentelemetry.io/otel from 1.23.1 to 1.24.0. - - bca74ee87 2024-02-26T17:13:03Z build(deps): bump distroless/static-debian12 from `2eb0c79` to `0d6ada5` - - 4a2f0c851 2024-02-26T17:07:41Z build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 - - 2e3f2b53b 2024-02-26T09:20:14Z Update changelogs to cover the bumping bbolt to v1.3.9 for both 3.4.31 and 3.5.13 - - b95c65e06 2024-02-26T09:36:30+08:00 update CHANGELOG-3.5.md for #17447 - - 9c994a4d0 2024-02-24T20:12:07Z Clarify the core dependencies mappings: bbolt and raft - - fe113026f 2024-02-23T15:58:57+05:30 Increased timeout to fix HashKV test - - 610f5272f 2024-02-22T23:36:20-06:00 changelog: Add ignore old leader's leases revoking requests - - 3565a822d 2024-02-22T11:31:16-08:00 Add VerifyTxConsistency to backend. - - d9b929947 2024-02-22T18:55:53+01:00 Add Cyberfusion to adopters - - f9c9bade2 2024-02-22T13:36:38+01:00 Update flake issue template to include prow - - 0b2757036 2024-02-22T15:01:33+05:30 tests/robustness: use WithRequireLeader in Kubernetes traffic - - 9713761c9 2024-02-22T22:25:22+13:00 depdendency: github.com/prometheus/common from 0.46.0 to 0.47.0. - - f8141bc03 2024-02-22T22:25:22+13:00 depdendency: go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.47.0 to 0.48.0. - - df1727f3e 2024-02-22T22:25:22+13:00 depdendency: github.com/prometheus/client_model from 0.5.0 to 0.6.0. - - 08cacf198 2024-02-22T22:25:22+13:00 depdendency: google.golang.org/grpc from 1.61.0 to 1.61.1. - - 6ea83db20 2024-02-22T08:44:13+13:00 Add changelog entry for updated compaction logs. - - 3a351c2fe 2024-02-21T16:15:40+01:00 Revert "tests/robustness: check for compaction before prevKV validation" - - c0e1b8665 2024-02-20T04:37:04Z update changelog for #15940 - - 328ef3782 2024-02-19T17:31:26Z build(deps): bump distroless/static-debian12 from `4a2c1a5` to `2eb0c79` - - e43f27b8b 2024-02-19T17:23:17Z build(deps): bump github/codeql-action from 3.24.0 to 3.24.3 - - 5d7f58d14 2024-02-19T17:05:59+05:30 tests/robustness: check for compaction before prevKV validation - - b57a5b575 2024-02-19T15:57:42+05:30 Add Make CGO_ENABLED configurable to CHANGELOG - - bc814f7dc 2024-02-18T13:38:33+01:00 Fix typo in etcdctl/README.md - - 2eda06ac1 2024-02-17T21:35:54-08:00 *: update logrus to v1.9.3 - - 0354d39ae 2024-02-17T17:21:19+08:00 server/verify: use retErr to shadow local err - - 55fa8c9f5 2024-02-16T00:06:31-08:00 cleanup contention.go docs, Observe param name - - 57f24f5f5 2024-02-16T00:05:18+13:00 Update org membership process for new members. - - 9d27d24fe 2024-02-16T00:04:15+13:00 Remove defunct org membership request template. - - 3f98ee77d 2024-02-14T18:50:04+05:30 etcdserver: add TestErrorLogs test to check for error logs - - b51a83464 2024-02-14T16:28:47+05:30 tests/robustness: allow persisting result reports for successful runs - - cdd018ad2 2024-02-14T16:28:44+05:30 tests/robustness: add a robustness test for validating create events - - 4fa07a1c8 2024-02-14T15:44:08+05:30 tests/robustness: make merging histories work on []PersistedEvent - - be2883321 2024-02-13T13:36:13-08:00 etcdutl: Fix snapshot restore memory alloc issue - - d69adf45f 2024-02-13T13:24:44-08:00 server: Implement WithMmapSize option for backend config - - 9aad6700d 2024-02-13T22:55:57+05:30 tests/robustness: add robustness test for watch with PrevKV() - - dd9dd84a0 2024-02-13T09:32:55Z dependency: bump github.com/mikefarah/yq/v4 from 4.40.5 to 4.40.7 - - a6d72d5fb 2024-02-13T09:32:55Z dependency: bump golang.org/x/net from 0.20.0 to 0.21.0 - - dfff80a89 2024-02-13T09:32:55Z dependency: bump golang.org/x/crypto from 0.18.0 to 0.19.0 - - 236e8ca88 2024-02-13T09:32:55Z dependency: bump go.opentelemetry.io/otel from 1.22.0 to 1.23.1 - - 5c1b43c07 2024-02-13T09:32:55Z Dependency: bump golang.org/x/sys from 0.16.0 to 0.17.0 - - 20005e0e8 2024-02-13T13:24:55+05:30 Make CGO_ENABLED configurable - - 78a693fc7 2024-02-12T17:36:21Z build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 - - 271b9cdba 2024-02-12T17:36:19Z build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1 - - 5b2a9e2ab 2024-02-11T14:09:43Z Remove the unused AuthTokenTTL parameter from integration test - - 62cc04ff0 2024-02-09T21:13:37+08:00 rollback the CHANGELOG-3.5.md - - 385088944 2024-02-09T15:14:27+08:00 improve description and update CHANGELOG-3.5.md - - 8732f2736 2024-02-08T15:15:34Z Add Hitoshi Mitake into the Emeritus Maintainers list - - cf296a0b3 2024-02-08T14:45:51+08:00 improve description for grpc-proxy keepalive arguments - - d42d5a391 2024-02-07T17:20:22+01:00 add OpenBSD support to changelog 3.5 - - 759d88a99 2024-02-07T16:15:49+01:00 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.19.0 to 2.19.1 - - aac5c09fe 2024-02-07T09:20:17-05:00 Add go1.21 update to changelog - - 70cc19aad 2024-02-06T20:05:16+05:30 etcdserver: add memberReplaceLearnerTest to improve testing coverage - - 617f1df44 2024-02-06T19:25:53+09:00 Remove string dependent error handling in watch and auth - - 8c9dd749a 2024-02-06T18:42:57+09:00 Update OWNERS: retire mitake - - aaddb7966 2024-02-05T17:18:30Z build(deps): bump github/codeql-action from 3.23.2 to 3.24.0 - - 4d9bff983 2024-02-05T10:46:03-05:00 Add backoff/retry config to changelog - - 5d356305e 2024-02-05T14:30:50Z Update ahrtr's email - - 79716fa11 2024-02-05T11:13:46+08:00 added dial-keepalive-time、dial-keepalive-timeout、permit-without-stream arguments to the grpc-proxy - - 32ee8b877 2024-02-03T18:58:17+08:00 etcdserver: drain leaky goroutines before test completed - - 93b5e5a3e 2024-02-01T14:18:54+01:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.2.3 to 1.2.6 - - 60d642332 2024-02-01T14:18:36+01:00 dependency: bump github.com/cheggaaa/pb/v3 from 3.1.4 to 3.1.5 - - 9ec752d0f 2024-02-01T13:57:32+01:00 dependency: bump google.golang.org/grpc from 1.60.1 to 1.61.0 - - aa81e5785 2024-02-01T13:51:29+01:00 dependency: bump go.opentelemetry.io/proto/otlp from 1.0.0 to 1.1.0 - - f0f4e8a4e 2024-02-01T16:14:35+05:30 tests/robustness: fix out of index panic in model replay - - 0b77694f1 2024-01-31T13:31:08Z Update changelog for v3.4.30 - - f58a258f9 2024-01-31T11:59:37+01:00 Add v3.5.12 changelog - - 16a5e1da7 2024-01-30T15:42:11+05:30 Added a error log when learner is not sync with etcd leader. - - 5e28c3d4b 2024-01-29T17:09:45Z build(deps): bump github/codeql-action from 3.23.1 to 3.23.2 - - db21a20fd 2024-01-29T17:09:37Z build(deps): bump actions/upload-artifact from 4.2.0 to 4.3.0 - - c83feebbb 2024-01-25T11:49:57-08:00 changelog: add 3.4 and 3.5 note about go 1.20.13 - - c12e15d91 2024-01-25T18:00:26Z Add verification on keys: should be always mononically increasing - - 7d5580027 2024-01-25T17:08:57+01:00 Disable lazyfs test on arm64 machines - - c647614b6 2024-01-25T13:30:27Z test: fix TestHashKVWhenCompacting: ensure all goroutine finished - - 9cfbbb955 2024-01-25T15:26:26+13:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.46.1. to 0.47.0. - - 366645482 2024-01-25T15:24:53+13:00 depdendency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.21.0 to 1.22.0. - - 2edcf60b4 2024-01-25T15:19:09+13:00 depdendency: bump go.opentelemetry.io/otel from 1.21.0 to 1.22.0. - - 0857def30 2024-01-24T11:08:31-05:00 add backoff to client config - - 362f0a2fc 2024-01-24T13:47:30Z print error log when creating peer listener failed - - c799c889b 2024-01-22T17:45:37Z build(deps): bump actions/upload-artifact from 4.1.0 to 4.2.0 - - bfb740d55 2024-01-22T17:45:32Z build(deps): bump github/codeql-action from 3.23.0 to 3.23.1 - - 30b242f80 2024-01-19T08:58:48-08:00 Revert "add test cases of duplicate keys in one tx." - - 93afd8e43 2024-01-19T08:58:27-08:00 Revert "add key dedupe when a write buffer writeback to an empty read buffer bucket." - - 82562abc3 2024-01-19T15:29:51Z Fix test issue in TestScheduleCompaction - - fe03e168a 2024-01-18T16:43:55-08:00 *: fix golangci error-strings issues - - d5d7ef7f9 2024-01-18T14:12:19-08:00 dependency: upgrade go to 1.21.6 - - feba3ed86 2024-01-19T10:38:18+13:00 Added container tools to devcontainer for debugging prow jobs - - 82937fbdc 2024-01-18T10:27:09Z Add changelog for 3.4.30 to cover the nil pointer log panicking issue - - 8cfd1f550 2024-01-17T22:33:22+13:00 depdendency: bump golang.org/x/net from 0.19.0 to 0.20.0. - - 7a7d4684d 2024-01-17T22:28:43+13:00 depdendency: bump github.com/prometheus/common from 0.45.0 to 0.46.0. - - f0d73c9d1 2024-01-16T17:17:54+01:00 Separate robustness test scenarios and increase number of times we run exploratory tests in nightly - - c37991cf8 2024-01-16T16:04:03+01:00 Validate watch even if event history cannot be created - - 690916f01 2024-01-16T09:40:20Z replace CreateBucket with CreateBucketIfNotExists - - 044e17ba5 2024-01-15T17:15:00Z build(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0 - - 21bbc8271 2024-01-15T17:36:38+05:30 mvcc: Printing etcd backend database related metrics inside scheduleCompaction function - - 6abc942ab 2024-01-15T10:40:56Z Migrate the raft changes to raft's changelog - - cfbf672b3 2024-01-12T16:38:18Z specify logger for bbolt - - cf648e850 2024-01-12T15:30:11Z bump raft to v3.6.0-alpha.0 - - f2ada5814 2024-01-12T15:27:48Z bump bbolt to 1.4.0-alpha.0 - - fdf1e28a3 2024-01-12T19:24:10+08:00 integration: deflake TestMaintenanceSnapshotCancel - - f7d264d1e 2024-01-12T10:36:10Z update contributing guide to ensure there is an associated issue for each PR - - f7ab7adf2 2024-01-12T09:36:33Z server: fix learner metric incorrect issue - - a9b576831 2024-01-12T09:41:06+13:00 Ensure bin/python directory is cleaned after install - - 971a4f57c 2024-01-11T11:31:09-08:00 add key dedupe when a write buffer writeback to an empty read buffer bucket. - - 8d29b245a 2024-01-11T11:31:03-08:00 add test cases of duplicate keys in one tx. - - db61c9695 2024-01-10T09:33:21-08:00 commit bbolt transaction if there is any pending deleting operations - - b3a530764 2024-01-10T09:33:13-08:00 add tests to test tx delete consistency. - - 7c87fc9aa 2024-01-09T21:22:15+01:00 docs: update rotation worksheet - - 28f4c6fef 2024-01-09T16:26:47+01:00 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.1 to 2.19.0 - - 6706d9de2 2024-01-09T23:22:18+08:00 CHANGELOG: update changes for v3.4.29 - - 98646057d 2024-01-09T16:04:19+01:00 dependency: bump golang.org/x/sys from 0.15.0 to 0.16.0 - - 931687f87 2024-01-09T17:42:59+08:00 fix Struct Config has methods on both value and pointer receivers. Such usage is not recommended by the Go Documentation. - - ac6369d3a 2024-01-08T17:11:17Z build(deps): bump github/codeql-action from 3.22.12 to 3.23.0 - - dbfacb426 2024-01-05T10:29:34+13:00 Ensure bin directory exists for protoc install - - b103d46ce 2024-01-05T10:04:03+13:00 Automate installation of yamllint - - 3471ef133 2024-01-04T15:25:24+01:00 Add an e2e test and robustness failpoint around recovering from snapshot backend - - 7f8346b3f 2024-01-04T14:53:44+01:00 Don't flock snapshot files - - 06f7db1b0 2024-01-04T04:45:49+13:00 Update roadmap to use new issue priorities. - - 8444ea163 2024-01-03T20:12:49+13:00 Delegate approvals for backport workflows. - - b22b8ec3c 2024-01-02T16:56:04Z bump github.com/mikefarah/yq/v4 to v4.40.5 - - 8e7984cbc 2024-01-02T16:54:54Z bump go.uber.org/multierr to v1.11.0 - - 553d88cfd 2024-01-02T16:52:42Z bump github.com/prometheus/client_golang to v1.18.0 - - 164d4b945 2023-12-28T21:12:14+01:00 Update README.md - - 7d6665981 2023-12-28T21:12:14+01:00 Update OWNERS: Retire ptab - - 8ec4b290d 2023-12-29T04:57:22+13:00 Document issue prioritisation labels. - - c21b96647 2023-12-27T17:27:40+01:00 dependency: bump google.golang.org/protobuf from 1.31.0 to 1.32.0 - - 7643204e3 2023-12-27T16:51:59+01:00 dependency: bump go.uber.org/zap from 1.24.0 to 1.26.0 - - dc17043d2 2023-12-27T16:49:22+01:00 dependency: bump github.com/prometheus/common from 0.44.0 to 0.45.0 - - 3ddd5c146 2023-12-25T17:38:37Z build(deps): bump github/codeql-action from 3.22.11 to 3.22.12 - - e9434c945 2023-12-23T09:23:17-08:00 client: implement TLS CRL tests - - 0c55ed746 2023-12-21T19:07:47Z build(deps): bump google.golang.org/grpc from 1.59.0 to 1.60.1 - - 362477b07 2023-12-21T18:19:10+01:00 dependency: bump golang.org/x/crypto from 0.16.0 to 0.17.0 - - 538162ad2 2023-12-20T16:32:27+01:00 Test etcd fails to bootstrap with older db file - - d39d86a21 2023-12-20T16:26:27+01:00 Improve logs around recovering from snapshot backend - - 1e8d66ef9 2023-12-20T15:36:54+01:00 Add beforeOpenSnapshotBackend failpoint - - 08d799c4c 2023-12-20T18:09:31+09:00 Correct typo from 'Kuberntes' to 'Kubernetes' - - ac25ceeae 2023-12-20T13:56:36+13:00 build(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0 - - 0644d5b09 2023-12-20T13:55:11+13:00 Ensure matrix workflows use unique names for uploaded artifacts. - - 23da38c1c 2023-12-19T11:25:09-08:00 changelog: update 3.4 3.5 changelogs to include livez/readyz changes. - - cc9ca4047 2023-12-18T21:21:17-08:00 Add digest for base image and configure dependabot - - a05156fe9 2023-12-18T17:31:54Z build(deps): bump github/codeql-action from 2.22.9 to 3.22.11 - - a2721a30f 2023-12-17T20:44:39+13:00 Remove workflow telemetry github action. - - f7ff898fd 2023-12-15T17:53:36Z Resovle some review comments - - 67f17166b 2023-12-15T17:53:36Z Safeguard lease operations by double checking the leadership - - f7e488dc9 2023-12-15T17:53:36Z Add e2e test cases to reproduce the lease revoke issue - - 9590a02f9 2023-12-15T12:38:27Z update test case TestMemberReplace to always connect to stable endpoints - - ed01ee1e5 2023-12-14T10:05:51+08:00 etcdclient: Fix memory leak caused by for + time.After - - 616c5a47d 2023-12-13T15:16:17-08:00 changelog: update 3.4 changelog to include ssrf fix - - 36b252366 2023-12-13T18:43:22Z added some log messages for better diagnosis - - c89ee6f12 2023-12-12T23:48:07-08:00 contrib: add missing lock and mixin readme descriptions - - 8a7596304 2023-12-12T22:24:00-08:00 testutils: return early instead of first breaking in LogObserver.ExpectFunc - - 16d1ef949 2023-12-12T14:47:49-08:00 replace the deprecated x509.ParseCRL with x509.ParseRevocationList - - ef0a2903c 2023-12-13T08:40:24+13:00 depdendency: bump github.com/prometheus/client_model from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0. - - ab19cb311 2023-12-12T15:30:10Z update amd infra-guide docs - - dc76bf4af 2023-12-12T15:23:54Z Add actuated badge - - 0e8b9b2ef 2023-12-12T14:25:42+05:30 Adjusted RAM Requirements for arm64 Workflows - - 54822c47e 2023-12-12T15:22:22+08:00 member replace e2e test - - fe61388dc 2023-12-11T23:20:32+05:30 tuned memory allocation for arm64 workflows of e2e and tests-template yaml file - - 1ca46b56a 2023-12-11T17:06:08Z build(deps): bump github/codeql-action from 2.22.8 to 2.22.9 - - 365a3cc7d 2023-12-11T17:06:02Z build(deps): bump actions/setup-go from 4.1.0 to 5.0.0 - - 3ab54f720 2023-12-11T12:37:05Z install gofail in module-aware mode and ignore go.mod file - - ec07ff8fd 2023-12-10T21:56:01+13:00 Add status column for current release priorities. - - 580ace4d1 2023-12-10T19:42:30+13:00 Automating install of protoc - - 3e899d42c 2023-12-08T09:29:54+01:00 Add missing release date to v3.5.11 changelog - - cbcf76408 2023-12-07T22:52:10+01:00 etcd: Update changelog for go bump - - 9f82390ae 2023-12-07T20:32:43+08:00 server: refine TestProcessIgnoreMismatchMessage - - fb769c430 2023-12-07T11:57:45+08:00 server: ignore raft messages if member id mismatch - - 5cd288771 2023-12-06T19:25:33+01:00 etcd: Update go version to 1.21.5 - - be31dd00a 2023-12-06T13:54:12+01:00 dependency: bump github.com/prometheus/client_golang from 1.13.0 to 1.17.0 - - c14a58296 2023-12-06T13:48:42+01:00 dependency: github.com/mikefarah/yq/v4 from 4.35.2 to 4.40.4 - - 235ec793f 2023-12-06T13:44:54+01:00 dependency: bump golang.org/x/net from 0.18.0 to 0.19.0 - - 9a6eeb5f7 2023-12-05T10:51:38Z Rollback the pull/14080: which fixed the potential deadlock - - 8578e0711 2023-12-04T13:53:28-08:00 server: disable redirects in peer communication - - bc697bc26 2023-12-03T18:12:09+01:00 Revert "Switch to validating v3 when v2 and v3 are synchronized" - - 5175652a8 2023-12-03T17:26:51+01:00 Abort if failpoint injecton failed - - f37a4365e 2023-12-01T14:26:15Z Support setting http client timeout when enable/disable failpoint - - fe43753d4 2023-11-30T19:42:22Z add workflow telemetry to collect action metrics - - d61619518 2023-11-30T10:14:56-08:00 etcdctl,etcdutl,server,tests: bump golang.org/x/time to v0.5.0 - - b205f1403 2023-11-30T10:14:27-08:00 etcdutl,server,tests,tools: bump golang.org/x/crypto to v0.16.0 - - 2afd2ddee 2023-11-30T10:13:29-08:00 *: bump golang.org/x/sys to 0.15.0 - - b5b0b8dbd 2023-11-28T13:36:33+01:00 Fix message in case of unsupported platform - - 4c853774e 2023-11-28T02:32:50Z Rename the test and update comments - - 443af2497 2023-11-27T20:00:46+01:00 changelog: Update changelog for 3.5.11 to include url redirect fix - - b687d76ab 2023-11-27T17:12:50Z build(deps): bump github/codeql-action from 2.22.7 to 2.22.8 - - fbdf65f10 2023-11-27T12:00:47+01:00 Test v3 storage configuration validation - - c3c029d05 2023-11-27T09:15:42+13:00 CHANGELOG: Add 3.5.11 note for --experimental-distributed-tracing-sampling-rate. - - e192a0519 2023-11-26T17:40:28+01:00 Test ApplyConfState after restart - - a97052acf 2023-11-25T16:16:52Z remove unused method and functions - - 52a9b9d96 2023-11-24T20:57:40Z add initialization for epMu in contetx client - - 4fe46f920 2023-11-24T17:46:33+01:00 Switch to validating v3 when v2 and v3 are synchronized - - 2ad21558a 2023-11-24T16:13:25+01:00 Remove shouldApplyV3 from the v3 applier - - d22c00cce 2023-11-24T15:57:15+01:00 Extract membership applier - - a968c1f5b 2023-11-24T12:21:59+01:00 Add a simple test ensuring membership is properly bootstrapped - - 7fdb33065 2023-11-24T10:21:14+01:00 Move duplicated shouldApplyV3 logic up into apply method - - b3d351185 2023-11-23T17:27:25Z Update changelog for 3.4.28 - - 093666f45 2023-11-23T15:41:13+01:00 Cleanup v2 applier - - c72ff1e69 2023-11-23T14:55:01+01:00 Remove syncing the v2 store TTLs - - ed3375e07 2023-11-23T14:13:07+01:00 Remove v2 apply logic - - f454342bf 2023-11-23T12:33:29Z fix missing json flag when using VERBOSE=1 - - 2f30760b3 2023-11-22T18:05:19+01:00 Add tests for setting cluster version using v2 request - - 29dd025b8 2023-11-22T14:41:53+01:00 Stop using v2 requests in server tests - - cac2882df 2023-11-22T14:36:38+01:00 Refactor v2 deprecation tests to allow different cluster config - - 12b640523 2023-11-21T11:13:20-08:00 etcdserver: add linearizable_read check to readyz. - - f64689f4e 2023-11-21T16:27:22Z Update copyright header in sockopt_wasm.go - - 3a9a7483b 2023-11-21T20:03:48+13:00 depdendency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.46.0 to 0.46.1. - - 3b37afec7 2023-11-21T10:25:20+13:00 Don't follow redirects when checking peer urls. - - 08aabfea0 2023-11-21T10:06:15+13:00 depdendency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.20.0 to 1.21.0. - - 5449f0fb9 2023-11-21T10:04:28+13:00 depdendency: bump go.opentelemetry.io/otel/sdk from 1.20.0 to 1.21.0. - - 3836324e8 2023-11-20T18:01:27Z build(deps): bump github/codeql-action from 2.22.5 to 2.22.7 - - c041272d2 2023-11-20T18:01:19Z build(deps): bump actions/github-script from 6.4.1 to 7.0.1 - - dd7a4d28a 2023-11-19T22:39:33+01:00 Remove code used to make v2 proposals - - 958a2b8e3 2023-11-19T20:08:00+01:00 readme: fix slack link for sig-etcd - - b4fd31f25 2023-11-19T15:28:52+01:00 Remove code for setting cluster version via V2 API - - 8b3efbc59 2023-11-18T10:36:13-06:00 Remove nightly workflow - - 51eb29af3 2023-11-18T10:36:13-06:00 etcd-e2d-test:rename e2e-arm64 file and runs it on every pull request #16912 - - 2a463b581 2023-11-17T15:17:19-08:00 github workflow: enable workflow approval - - 88e204392 2023-11-16T09:07:47-06:00 Update 3.4 & 3.5 changelog. - - 033c3f3d9 2023-11-16T14:12:58Z get golangci-lint's version from tools/mod for the Makefile target install-golangci-lint - - c30d5c3f4 2023-11-16T13:45:31Z get golangci-lint't version from tools/mod for golangci/golangci-lint-action - - c1d079b05 2023-11-16T13:45:31Z define golangci-lint's version in tools/mod - - 9ee086c68 2023-11-16T12:38:16+01:00 changelog: Update fix for CVE-2023-47108 - - 232b25e31 2023-11-16T11:11:36+01:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.2.2 to 1.2.3 - - 33b526f58 2023-11-16T11:03:00+01:00 dependency: bump golang.org/x/net from 0.17.0 to 0.18.0 - - 4907fedbc 2023-11-16T10:50:17+01:00 dependency: bump golang.org/x/crypto from 0.14.0 to 0.15.0 - - 7586098f7 2023-11-16T10:44:50+01:00 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.0 to 2.18.1 - - 4ec3cf8cf 2023-11-15T14:22:58-06:00 tests: fix failed prow test by adding golangci-lint to Makefile - - 089165dee 2023-11-15T08:25:39-05:00 clientv3test: add comments for clientv3test - - b71686d1e 2023-11-15T10:26:39+01:00 Refactor mocking rand - - 834fac9fb 2023-11-15T02:08:07Z robustness test: add with functions of randomizable config params in robustness test - - 3897103b7 2023-11-14T09:26:00-08:00 etcdserver: add metric counters for livez/readyz health checks. - - acd572468 2023-11-13T12:18:48+01:00 dependency: bump go get go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.19.0 to 1.20.0 - - 8066e8116 2023-11-13T11:53:02+01:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.45.0 to 0.46.0 - - 55516234d 2023-11-13T16:19:44+08:00 exclude sleep failpoint from 1 node scenario - - 13d7bf5ab 2023-11-11T11:53:41+01:00 Increase client timeout for failpoint injection - - c48738e33 2023-11-11T10:18:34+08:00 fix: add js platform - - 1cecf35b2 2023-11-11T10:18:34+08:00 feat: add wasm for client transport - - c3641d34b 2023-11-10T16:06:16-08:00 github workflow: run arm64 tests on every push - - 1a65313a7 2023-11-10T14:41:21Z fix typo in concurrent examples - - 569cf2d2b 2023-11-10T05:54:33Z doc fix: add instruction for installing protoc and yamllint in contributing.md - - 8da89177a 2023-11-09T11:02:36-06:00 etcdctl,etcdutl,pkg,server,tests,tools: bump github.com/spf13/cobra from 1.7.0 to 1.8.0 - - ed30fb122 2023-11-09T11:02:36-06:00 *: bump golang.org/x/sys from 0.13.0 to 0.14.0 - - a4593c8d2 2023-11-09T11:02:36-06:00 tools/mod: bump github.com/fatih/color from 1.15.0 to 1.16.0 - - 20e14e064 2023-11-09T11:02:36-06:00 tools/mod: bump golang.org/x/text from 0.13.0 to 0.14.0 - - 68e06bdf7 2023-11-09T11:02:36-06:00 tools/mod: bump github.com/elliotchance/orderedmap from 1.5.0 to 1.5.1 - - afb36b946 2023-11-09T11:02:36-06:00 tools/mod: bump golang.org/x/mod from 0.13.0 to 0.14.0 - - ef8a08779 2023-11-09T10:29:49-06:00 github workflow: update golangci-lint to 1.55.2 - - 6ddca657a 2023-11-09T00:18:48-06:00 etcd: upgrade go version from 1.21.3 to 1.21.4 To keep etcd projects up to date with the latest patch releases & incorporate the latest security updates. - - ecfee78c4 2023-11-08T10:34:31-05:00 Update README to callout the issue triage meeting - - 2b7e1c6f8 2023-11-08T00:27:13-06:00 fix scripts - - 00ce0116c 2023-11-08T00:04:48-06:00 tests: add comments for clientv3test.TestWatchResumeInitRev - - c4499adfd 2023-11-07T17:41:11-06:00 replace archived repo in BOM check - - 20218117e 2023-11-07T17:32:25-06:00 README.md: Add documentation for new snapshot restore flags - - 904e5581d 2023-11-07T17:01:28-06:00 etcd-io tests: trial arm64 on every pr with a small robustness workflow - - 27272c3ed 2023-11-07T18:00:36-05:00 scripts: macOS support for scripts/genproto.sh - - d2ada9283 2023-11-07T11:01:51-06:00 etcdctl,etcdutl,server,tests: update golang.org/x/time to v0.4.0 - - 8264b4e9a 2023-11-05T09:27:37-06:00 clientv3,server,tests: bump dependencies identified by dependabot - - aa67cbe6a 2023-11-05T00:02:45+13:00 Complete migration to OWNERS file. - - d208985ae 2023-11-03T19:25:17+08:00 error handling for gofailpoint - - 827dc1868 2023-11-03T16:42:33+08:00 Add IO stall failpoint in raft loop - - 6343516b4 2023-10-30T17:37:52Z build(deps): bump ossf/scorecard-action from 2.3.0 to 2.3.1 - - ac5be8ef8 2023-10-30T17:37:48Z build(deps): bump github/codeql-action from 2.22.4 to 2.22.5 - - 42d9e43e5 2023-10-28T18:00:14-07:00 tests/e2e: enhance livez readyz e2e tests - - e8ae83fac 2023-10-28T17:57:12-07:00 Add e2e tests for livez readyz - - 8a6c1335e 2023-10-28T17:49:24-07:00 v3rpc: run health notifier to listen on online defrag state change - - 6b9fb706d 2023-10-27T13:41:59+02:00 Update date of v3.5.10 release - - 1101655b9 2023-10-26T16:34:15+01:00 bump bbolt to 1.3.8 for main branch - - 6dea713f7 2023-10-26T20:52:04+13:00 Stop running test workflows in containers. - - cd26faf28 2023-10-26T07:21:54+13:00 Fix runs-on for arm64 robustness. - - 9a5923098 2023-10-25T08:59:25-07:00 CHANGELOG-3.6.md: add etcd --experimental-stop-grpc-service-on-defrag - - 913c8258f 2023-10-25T08:59:07-07:00 tests: add client failover on defrag test case in e2e - - ea035471c 2023-10-25T08:58:33-07:00 online defrag notifies gRPC health server to expose NOT_SERVING status - - b9498fd24 2023-10-26T00:55:43+13:00 Revert runner change for main robustness nightly. - - 974679fb3 2023-10-24T19:08:27+01:00 schedule the arm64 related workflow nightly - - a83f58019 2023-10-24T12:04:52+01:00 Enable manual testing of e2e-arm64-nightly job - - 34382006d 2023-10-24T10:19:13+01:00 test: implement method ForgetLeader for struct nodeRecorder - - ae60b5567 2023-10-24T10:17:57+01:00 bump raft to latest commit - - d2af596a9 2023-10-24T17:44:01+13:00 depdendency: bump github.com/prometheus/common from 0.44.0 to 0.45.0. - - e6e740fb8 2023-10-24T17:39:39+13:00 depdendency: bump google.golang.org/grpc from 1.58.3 to 1.59.0. - - 297973f1f 2023-10-23T17:52:59Z build(deps): bump actions/checkout from 4.1.0 to 4.1.1 - - 6e9f458a4 2023-10-23T17:16:09Z build(deps): bump github/codeql-action from 2.22.3 to 2.22.4 - - 286bb0bac 2023-10-23T18:13:14+01:00 Switch over to managed Arm64 hosts - - ee6014614 2023-10-20T08:30:55-07:00 CHANGELOG-3.5.md: Upgrade gRPC to 1.47.0 - - 1324f0325 2023-10-18T12:42:23-07:00 add existing http health check handler e2e test - - aa28a69ce 2023-10-18T10:14:43+02:00 Implement random packet dropping - - ff748640b 2023-10-18T14:14:34+13:00 Direct questions to our discussion forums. - - 3c6d2e972 2023-10-17T15:51:25-07:00 remove deprecated gRPC API usage - - f96000e15 2023-10-17T21:47:23+08:00 *: cleanup main_test.go - - aea1cd007 2023-10-17T21:24:13+08:00 feat: enable unparam lint - - 85bd1af33 2023-10-17T09:07:47-04:00 osutil: remove unused Unsetenv function - - b5622a24b 2023-10-17T11:24:25+02:00 dependency: bump github.com/google/go-cmp from 0.5.9 to 0.6.0 - - 3bb27f000 2023-10-17T11:21:29+02:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.2.1 to 1.2.2 - - 7e8bb15cc 2023-10-17T11:17:49+02:00 Add member replace failpoint to robustness tests - - 447aa33a9 2023-10-17T11:15:22+02:00 dependency: bump golang.org/x/sync from 0.3.0 to 0.4.0 - - 0d83a72cf 2023-10-17T09:51:43+02:00 Split failpoints file - - 46b42a750 2023-10-16T22:42:31+02:00 Fix cluster query - - 452e82051 2023-10-16T22:10:41+02:00 Make the main_test the entrypoint and move senario generation to separate file - - d6e376b6c 2023-10-16T20:57:31+02:00 Move failpoints to separate package - - ca5684470 2023-10-16T17:57:21Z build(deps): bump github/codeql-action from 2.22.1 to 2.22.3 - - 449d61c66 2023-10-16T09:54:26+01:00 Update 3.4 & 3.5 changelog - - 7a57e06ec 2023-10-14T22:32:16-07:00 etcdserver: add livez and ready http endpoints for etcd. - - 841731bbf 2023-10-13T18:56:22+02:00 Fix linearization failure not causing test failure - - 4c7b8dbc9 2023-10-13T18:17:29+02:00 Use the minimal time event was observed on watch - - b02798e94 2023-10-13T14:06:13+02:00 Refactor and reorder validation to avoid reporting multiple corelated failures - - 867faa192 2023-10-13T18:39:38+08:00 etcdserver: remove redundant `len` check in health check - - 6f95ea04b 2023-10-13T16:48:37+08:00 tests: deflake TestEtcdTLSVersion - - 81fe610bd 2023-10-13T14:00:25+08:00 *: enable markdown_marker checker - - c25f1dff8 2023-10-12T16:59:34-07:00 http health check bug fixes - - c34ccfbc0 2023-10-12T17:31:56+02:00 Dynamically generate flags passed to etcd binary - - 42507f4fd 2023-10-12T22:35:54+08:00 CHANGELOG: update 3.4/3.5 golang version - - c71f60e79 2023-10-12T14:09:31+02:00 Remove duplicated test - - 05cc60a53 2023-10-12T14:09:31+02:00 Use contain to make tests clearer and more resilient to changes - - 6f63f4b67 2023-10-12T14:09:29+02:00 Use single string to define a flag allowing for easier testing - - 6d9a0a40b 2023-10-11T23:31:39+02:00 Add tests to prepare to dynamic flag generation - - e4c0eb771 2023-10-11T10:39:05-04:00 bump google.golang.org/grpc to v1.58.3 - - a5580a729 2023-10-11T10:16:57-04:00 Bump go to 1.21.3 - - 3a61187ce 2023-10-11T10:09:14-04:00 bump golang.org/x/net to v0.17.0 Address CVE-2023-39325 and CVE-2023-44487 - - b8271d9c7 2023-10-11T12:25:31+02:00 Continue on e2e failure - - 9f40116fa 2023-10-10T16:31:42+02:00 Return to default write scheduler since golang.org/x/net@v0.11.0 started using round robin - - 03ceed714 2023-10-10T12:11:54Z Update changelog for 3.4 & 3.5 - - d88458043 2023-10-10T11:50:54+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.44.0 to 0.45.0 - - c94deb951 2023-10-10T11:49:36+02:00 dependency: bump github.com/prometheus/client_model from 0.4.1-0.20230718164431-9a2bf3000d16 to 0.5.0 - - 1b1c42a7a 2023-10-10T11:49:35+02:00 dependency: bump golang.org/x/net from 0.15.0 to 0.16.0 - - 86ea531b7 2023-10-09T23:34:26+02:00 etcd: upgrade go version to 1.21.2 - - 395376d3a 2023-10-09T14:53:16-04:00 Refactor common revision code to pkg - - 97fd17d74 2023-10-09T17:34:26Z build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.0 - - 074128a4d 2023-10-09T17:34:22Z build(deps): bump github/codeql-action from 2.21.9 to 2.22.1 - - 82197417f 2023-10-09T23:28:09+08:00 tools/mod: remove revive - - 0ec618146 2023-10-09T23:27:48+08:00 scripts: remove unconvert_pass - - b4d54922e 2023-10-08T21:27:22+02:00 Fix providing profile to robustness tests - - 093ec7a11 2023-10-08T15:20:30+08:00 scripts: remove the markdown_you_pass - - f5e82260d 2023-10-07T18:20:18+02:00 Fix parsing failpoint names when failpoint has value set - - 5878f346b 2023-10-07T22:29:43+08:00 *: migrate nakedret into golangci-lint - - 05a77032f 2023-10-07T12:31:56+02:00 Inject sleep during etcd bootstrap to reproduce https://github.com/etcd-io/etcd/issues/16666 - - 2012af31e 2023-10-06T11:27:56+13:00 Fix typo in ci infra admins table. - - c1fb2c231 2023-10-05T14:17:45+02:00 Use default embed config in e2e tests - - c2655b411 2023-10-05T14:09:43+02:00 Fix watch validation assuming that client requesting older watch revision - - f3196e3bb 2023-10-05T11:29:39+02:00 Avoid timing out and provide a proper error in TestCtlV3GetFormat test - - b385121be 2023-10-04T15:26:44+01:00 test: add test cases to verify consistent reading right after writing - - b70745d76 2023-10-04T06:53:27Z Update jsonnet dependency - - e0e4cdab8 2023-10-04T11:46:36+13:00 depdendency: bump github.com/alexfalkowski/gocovmerge from 1.2.0 to 1.2.1. - - 314e63735 2023-10-04T11:13:25+13:00 depdendency: bump github.com/mikefarah/yq/v4 from 4.35.1 to 4.35.2. - - 074d79652 2023-10-04T11:10:01+13:00 depdendency: bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0. - - aac8919b1 2023-10-04T11:06:38+13:00 depdendency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.18.0 to 1.19.0. - - e31de5e3c 2023-10-03T21:37:18+02:00 Revert "etcd server shouldn't wait for the ready notification infinitely on startup" - - 9268dc6f4 2023-10-02T17:28:11Z build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 - - 50fb91931 2023-10-02T13:53:38+02:00 Make AddEmbedFlags functon a method on embed.Config - - d98faeef8 2023-10-01T09:58:27+02:00 Refactor registering flags to separate AddEmbedFlags function for future reuse - - 11b441b60 2023-10-01T09:56:31+02:00 Reuse embed.Config in e2e cluster config - - b8103b0fe 2023-09-30T14:21:26+01:00 test: fix the TestCtlV3ConsistentMemberList: set the wait-cluster-ready-timeout as 1ns - - ddc2b56af 2023-09-30T17:52:57+08:00 tools: fix yamlfmt issue - - 0ece40453 2023-09-30T17:38:00+08:00 .github: ensure there is no change after make-fix - - 16f891f17 2023-09-30T14:26:03+13:00 Documented removal of etcdutl backup. - - 0b8cad83d 2023-09-29T12:58:18+01:00 address the review comments - - 4132c3559 2023-09-29T15:39:45+13:00 Remove legacy etcdutl backup Co-authored-by: James Blair - - 70a320550 2023-09-28T20:07:06+01:00 fix broken unit test in server_test.go - - 9c9804399 2023-09-28T20:06:12+01:00 do not update RaftCluster.members and RaftCluster.removed if the v3store is ahead of the current replayed WAL entry index - - 628b45c09 2023-09-28T20:04:47+01:00 test: add a test case to verify consistent memberlist on bootstrap - - eef8636f3 2023-09-27T22:41:16+08:00 pkg/stringutil: sort 'ss' in TestUniqueStrings - - 1ee010f5c 2023-09-26T23:39:10+08:00 Add fuweid as reviewer - - 4d486a233 2023-09-25T21:00:55+01:00 bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.17.0 to 1.18.0 - - 10cddaaf7 2023-09-25T20:59:30+01:00 bump go.opentelemetry.io/otel/sdk from 1.17.0 to 1.18.0 - - bb85fa8a7 2023-09-25T20:57:18+01:00 bump gotest.tools/v3 from 3.5.0 to 3.5.1 - - f90a73c20 2023-09-25T20:56:12+01:00 bump github.com/mgechev/revive from 1.3.3 to 1.3.4 - - df7f2d93f 2023-09-25T20:53:56+01:00 dependency: bump google.golang.org/grpc from 1.58.1 to 1.58.2 - - a6d511abe 2023-09-25T18:53:50Z build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 - - a89571075 2023-09-25T17:48:06Z build(deps): bump actions/checkout from 4.0.0 to 4.1.0 - - 8870cb307 2023-09-25T19:40:45+08:00 *: fix unconvert linter - - 4704a5af3 2023-09-25T19:37:18+08:00 *: fix unused issue - - 896d161d1 2023-09-25T19:14:01+08:00 *: fix stylecheck linter - - 07effc4d0 2023-09-24T14:21:11+08:00 *: fix revive linter - - 078b50fe3 2023-09-21T20:17:37+02:00 dependency: bump honnef.co/go/tools from 0.4.5 to 0.4.6 - - 6060037c5 2023-09-21T20:14:29+02:00 dependency: bump gotest.tools/gotestsum from 1.10.1 to 1.11.0 - - 443ee6eb4 2023-09-21T20:07:07+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.43.0 to 0.44.0 - - 2048a638f 2023-09-21T19:54:54+02:00 dependency: bump google.golang.org/grpc from 1.58.0/1.57.0 to 1.58.1 - - eef790399 2023-09-21T19:41:16+02:00 dependency: bump go.uber.org/zap from 1.25.0 to 1.26.0 - - 46df6abb0 2023-09-21T21:18:36+08:00 *: remove goimports(_fix)_pass and add lint_fix_pass - - aa9748416 2023-09-21T21:14:09+08:00 *: enable goimports in verify-lint - - c6323b9a5 2023-09-21T17:39:44+08:00 disable staticcheck for DoubleBarrier.Enter - - 502879405 2023-09-21T16:10:45+08:00 *: lint_pass should use global golangci.yaml - - 2b1e181c8 2023-09-21T12:34:17+08:00 *: Use golangcilint_pass to run staticcheck and ineffassign - - 9c3edfa0a 2023-09-21T11:24:26+08:00 *: fix staticcheck lint - - df86cadd8 2023-09-19T22:19:19+08:00 *: fix ineffassign lint - - 5e3910d96 2023-09-19T20:24:01+08:00 *: fix govet-shadow lint - - ea2d60cad 2023-09-19T12:17:22+01:00 dependency: bump grpc-gateway from 2.17.1 to 2.18.0 - - c15f11041 2023-09-19T09:54:18+01:00 Update 3.6 changelog to include the grpc-gateway upgrading from v1 to v2 and golang upgrading to 1.21 - - 84d0f1fcc 2023-09-18T17:38:07Z build(deps): bump github/codeql-action from 2.21.5 to 2.21.7 - - 8eba295bc 2023-09-18T12:09:46+01:00 Resolve review comments: add some comments to clarify some confusion script or code - - d06cdfa1e 2023-09-18T11:22:16+01:00 Updated the tools/proto-annotation to exclude grpc.gateway package - - 5444cdae6 2023-09-18T11:22:16+01:00 remove all usage of v1 grpc-gateway - - de41d4d8a 2023-09-18T11:22:16+01:00 dependency: set github.com/grpc-ecosystem/grpc-gateway/v2 version to 2.17.1 for all modules - - 189f709a5 2023-09-18T11:22:16+01:00 Apply patches on the generated *.pb.gw.go files to convert v1 messages to v2 messages - - 4ec581a6a 2023-09-18T11:22:15+01:00 re-generate all the *.pb.gw.go files - - 522b69892 2023-09-18T11:22:15+01:00 upgrade grpc-gateway from v1 to v2 - - e72c2c40d 2023-09-17T23:52:41+08:00 *: fix nakedret lint - - c0aa3b613 2023-09-17T17:41:58+08:00 Use any instead of interface{} - - 371bedad2 2023-09-16T19:43:05+12:00 Add OWNERS file for etcd. - - 3d079fa3c 2023-09-15T16:49:08Z Add diagrams explaining etcd internals and consistent read/write workflows - - cc130fd2d 2023-09-13T10:10:02-04:00 Update to go1.21 - - 2a0613bc2 2023-09-12T10:47:14+01:00 dependency: bump google.golang.org/grpc to 1.58.0 - - b79cbcc3d 2023-09-11T21:54:42-07:00 mvcc: cleanup comment in HashStorage.Store - - 909d79560 2023-09-11T19:36:18+01:00 dependency: bump golang.org/x/net from v0.14.0 to v0.15.0 - - 17ade8ff0 2023-09-11T17:20:06Z build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 - - d687bd098 2023-09-11T13:50:26+01:00 test: simply the expected output for some curl test cases" - - 18f70c255 2023-09-10T20:52:40+01:00 test: add test case to cover all election REST APIs - - 6dae08842 2023-09-09T16:20:31+02:00 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.16.0 to 1.17.0 - - 5d1b0d117 2023-09-09T16:20:13+02:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.42.0 to 0.43.0 - - e47d10fca 2023-09-09T16:19:54+02:00 dependency: bump golang.org/x/sys from 0.11.0 to 0.12.0 - - 3b736aefe 2023-09-09T16:19:32+02:00 dependency: bump github.com/google/yamlfmt from 0.9.0 to 0.10.0 - - 83e5424b7 2023-09-09T21:56:51+08:00 CHANGELOG: update 3.5 with #16565 - - 7f2949bac 2023-09-09T09:40:45+01:00 test: split watch and election tests to separate files - - 310e8843e 2023-09-08T17:04:42+01:00 changelog: update changelog to cover the goalng bump - - 0b27aff79 2023-09-08T17:04:01+01:00 test: add test case to cover lock restful APIs - - a9931b46e 2023-09-08T16:29:14+01:00 dependency: bump golang to 1.20.8 - - 6599dec92 2023-09-07T08:49:57-04:00 dependency: bump github.com/grpc-ecosystem/grpc-gateway/v2 from v2.7.0 to v2.17.1 - - a6f7bbe56 2023-09-06T18:12:42+08:00 server/storage/mvcc: deflake TestHashKVWhenCompacting - - 1b87ec499 2023-09-06T08:24:41+01:00 test: de-flake test case TestMemberList - - 5dd5fe35d 2023-09-05T15:04:02+01:00 test: de-flake test case TestV3WatchProgressOnMemberRestart - - b2ee90c16 2023-09-05T14:41:11+01:00 test: remove apiPrefix and withApiPrefix - - ce64fbe3f 2023-09-05T14:09:52+01:00 test: add test cases to cover cluster RESTful APIs - - dd12ff471 2023-09-04T18:22:30Z build(deps): bump github/codeql-action from 2.21.4 to 2.21.5 - - 0f1de8122 2023-09-04T17:12:38Z build(deps): bump actions/checkout from 3.6.0 to 4.0.0 - - dc8011570 2023-09-03T20:26:25+01:00 test: add e2e test cases to cover all auth related RESTful APIs - - 7faab4aa4 2023-09-03T12:04:50+12:00 Maintain a consistent naming standard for curlv3 tests. - - d2a93eb7c 2023-09-02T06:31:54Z tests/integration: deflake TestV3AuthWithLeaseRevokeWithRootJWT - - 818561f43 2023-09-02T07:29:54+01:00 test: move all auth related test cases into a separate test file - - 76cbfd364 2023-09-01T20:33:41+02:00 Use test cases from TestCheckTxn to test Put and Range - - e1617f98b 2023-09-01T14:51:22+02:00 server: Test txn checking - - 245b58a1e 2023-09-01T16:19:29+05:30 update the debian12 and bookworm remove --v 1.0 - - b4803fb39 2023-09-01T09:13:51+01:00 test: refactor the existing KV RESTful test cases and also add new cases - - 02c01f04d 2023-08-30T16:19:15+01:00 test: move all KV related RESTful APIs into a separate test file - - b05d75ab0 2023-08-30T23:03:15+08:00 server: optimizing memory overhead of copy operation in ConcurrentReadTxn - - a7330692b 2023-08-30T15:09:40+01:00 test: add v3 curl test to cover all maintainence REST APIs - - 92aebbcc8 2023-08-29T22:16:32+08:00 CHANGELOG: add #16490 item in CHANGELOG-3.5.md - - bd7f0dab3 2023-08-29T11:36:03+02:00 server: Refactor checkTxn into single function handling all request types - - 4ae1e9d66 2023-08-29T08:49:31+12:00 depdendency: bump go.opentelemetry.io/otel/sdk from 1.16.0 to 1.17.0. - - d47270074 2023-08-29T08:43:17+12:00 depdendency: bump go.opentelemetry.io/otel from 1.16.0 to 1.17.0. - - 5e28fdbca 2023-08-29T08:39:52+12:00 depdendency: bump github.com/mgechev/revive from 1.3.2 to 1.3.3. - - 2ec87000c 2023-08-28T17:25:19Z build(deps): bump actions/checkout from 3.5.3 to 3.6.0 - - 40ada2a85 2023-08-28T14:16:08Z Add memo in README - - c852ffe6e 2023-08-28T14:07:03Z Add etcdselector to grafana7x dashboard and rest of alerts. https://github.com/etcd-io/etcd/pull/16245 - - 957b58e56 2023-08-28T13:46:13Z Set grafana7x to false by default - - aa21d536d 2023-08-28T13:42:02Z Keep grafana7x dashboard. Enable with grafana7x=true in config - - 7cbab6034 2023-08-25T18:59:34+01:00 add test cases to verify regular expression match - - 7d95c68b4 2023-08-25T15:00:35+01:00 test: support regular expression matching on the response - - 555c459c5 2023-08-23T15:51:19-07:00 dependency: bump honnef.co/go/tools from v0.4.3 to v0.4.5 - - 63e614fb0 2023-08-23T08:33:39-05:00 Add unit test for CLI flags and missing flags - - f3121fb76 2023-08-23T20:43:50+08:00 api: fix duplicate gateway url issue - - 672326273 2023-08-23T21:54:35+12:00 Document policy for etcd project golang version. - - ce4f2a489 2023-08-23T17:37:05+12:00 Fix markdownlint issues in dependency_management.md. - - 8729417ce 2023-08-22T19:12:37Z Preserve the order of steps done for snapshot - - cb0df72b7 2023-08-22T21:48:27+12:00 Use crypto/rand.Read instead of deprecated math/rand.Read. - - 30b5c3719 2023-08-22T10:08:34+01:00 test: verify snap.Load() is sucessful - - 1c0db872d 2023-08-22T10:18:30+02:00 Add membership changes to downgrade tests - - 59332dc19 2023-08-21T19:18:11Z Update to generate v2 snapshot from v3 state - - 7b3daf612 2023-08-21T19:13:36Z Minor update to test code to remove a local var - - 3be86903a 2023-08-21T17:35:47Z build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 - - 4d209af83 2023-08-21T10:27:58+08:00 fix: throughput typo - - f432c1cf2 2023-08-21T10:19:05+08:00 chore: pkg import more than once - - 1b63b189e 2023-08-20T15:28:26+02:00 etcd-io/etcd #479 meeting is now on CNCF-funded Zoom channel - - 52748f60f 2023-08-20T16:34:44+08:00 all: stop using math/rand.Seed - - dd1b06f01 2023-08-19T22:11:18+02:00 etcd-io/etcd #479 Use new and better canonical link to Google Groups - - 208a74a21 2023-08-19T21:28:32+12:00 Run integration, e2e & grpcproxy tests in container. - - df0c9ba7d 2023-08-19T11:41:35+12:00 Update changelog for backport of socket options fix. - - c3a32a5aa 2023-08-19T11:40:58+12:00 Update changelogs for go 1.20 minor version update. - - b16fe8009 2023-08-18T11:56:13-07:00 Fix unit test to avoid failing based on 'tail' command path - - 83f20f61c 2023-08-18T11:56:13-07:00 Fix make test targets when empty bash args provided - - e4f239408 2023-08-18T16:14:35Z Update test for v2 deprecation to verify membership match - - 3f6a5c0bb 2023-08-18T22:21:00+08:00 *: enable larger runner - - 68db7087e 2023-08-18T20:05:05+08:00 Handle ErrCompacted errors for Compact in raftexample - - d9408473c 2023-08-18T13:41:13+02:00 server: Unify arguments for mvcc methods - - e4e05c571 2023-08-18T16:48:10+08:00 tests/*: redirect metrics into file - - 62907bc84 2023-08-16T22:43:05+02:00 Update issues links in CONTRIBUTING.md - - bbee33e20 2023-08-15T10:35:44+01:00 test: increase the timeout for the flaky test TestCtlV3AuthCertCNWithWithConcurrentOperation - - 006b61f95 2023-08-15T09:23:30+01:00 Update dependency management guide: the gRPC has already been bumped to v1.57 - - 4a3af340b 2023-08-15T09:14:44+01:00 dependency: bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc to v1.16.0 - - 2684447d0 2023-08-15T09:11:50+01:00 dependency: bump go.opentelemetry.io/otel/sdk to 1.16.0 - - 38b240297 2023-08-15T09:03:11+01:00 dependency: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.37.0 to 0.42.0 - - 602a38150 2023-08-15T19:56:37+12:00 Consolidate robustness actions templates. - - 01317bf80 2023-08-15T12:56:37+12:00 Add example config for TLS protocol version - - bb21f0ee3 2023-08-14T18:54:46+01:00 dependency: bump github.com/mikefarah/yq/v4 from 4.34.2 to 4.35.1 - - dacecfde5 2023-08-14T18:53:28+01:00 dependency: bump github.com/alexfalkowski/gocovmerge from 1.1.8 to 1.2.0 - - a464e9aeb 2023-08-14T17:29:06Z build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 - - ab895b29f 2023-08-14T17:28:57Z build(deps): bump github/codeql-action from 2.21.2 to 2.21.4 - - b4bf1579f 2023-08-14T10:09:27+01:00 update the roadmap: etcd 3.6.0 will depend on bbolt 1.4.0 instead of 1.3.8 - - b0887354e 2023-08-11T21:47:34Z Update etcdutl restore to create v2 snapshot from v3 - - b6d123d08 2023-08-11T15:03:48+12:00 Update to golang 1.20 minor release. - - 6757c444c 2023-08-10T09:13:34+08:00 2023-08-10 bump up dependencies - - 34c71d3ea 2023-08-09T21:56:18+12:00 Add lazyfs support for arm64 robustness. - - acfa46c02 2023-08-07T20:13:04+01:00 replace github.com/gyuho/gocovmerge with github.com/alexfalkowski/gocovmerge - - f7126aa1c 2023-08-06T19:02:15+12:00 depdendency: bump golang.org/x/sys from 0.10.0 to 0.11.0. - - a2bd589cd 2023-08-05T19:27:10+02:00 tests/robustness: Reduce minimal QPS to eliminate flakes - - 81ecac11c 2023-08-04T20:46:33+02:00 server: Separate txnRead from txnWrite - - 418bab0ed 2023-08-04T09:09:16+12:00 dependency: bump golang.org/x/net 0.12.0 to 0.13.0 - - fa21c07ba 2023-08-03T17:47:03+02:00 server: Separate internal functions for recursion and have public function create transaction and trace - - 5896e40d2 2023-08-03T14:46:33+12:00 dependency: bump go.uber.org/zap 1.24.0 to 1.25.0 - - 7a33184d9 2023-08-03T12:39:12+12:00 Streamline test commands between branches. - - 979102f89 2023-08-02T19:35:51+01:00 clientv3: remove the experimental gRPC API grpccredentials.Bundle - - b6f095e36 2023-08-02T16:17:42+08:00 Changelog: modify dependencies bumping go to 1.19.12 - - 569ec5196 2023-08-02T12:56:23+08:00 bump go version to 1.19.12 - - 24c6fb4b4 2023-07-31T13:57:24-07:00 Fix 15877 and bump up gRPC from v1.52.0 to v1.57.0 - - b8f08c972 2023-07-31T17:04:27Z build(deps): bump github/codeql-action from 2.21.0 to 2.21.2 - - 53cbd8100 2023-07-31T10:18:01+02:00 Separate Writer interface from BatchTx interfaces - - 8aeed09f2 2023-07-28T16:19:54-07:00 endpoints.Interpret returns Host:port as ServerName - - e5b7dde17 2023-07-28T16:55:41Z Add a method to export membership info to v2 store from RaftCluster - - 29769984e 2023-07-28T11:39:50+02:00 Remove RLock/RUnlock from BatchTx - - c023c0690 2023-07-27T19:42:02-05:00 checks the client supported versions based on the current version - - 9bd0e83cd 2023-07-28T10:07:08+12:00 Automate adding area/testing label to flake issues. - - e59e3d709 2023-07-27T13:25:12-07:00 dependency: bump google.golang.org/grpc from 1.51.0 to 1.52.0 - - 5b9b303fa 2023-07-27T23:49:09+12:00 Simplify go data race detection control. - - eb32d9ccc 2023-07-27T13:42:38+02:00 tests: Add support for lazyfs - - b4f8a7be5 2023-07-27T13:34:43+02:00 server: Remove Lock/Unlock from ReadTx - - 828e789c1 2023-07-27T10:04:02+02:00 tests: Make EtcdServerProcess substruct of proxyEtcdProcess to dummy methods when extending EtcdProcess interface - - d327cacb2 2023-07-26T20:47:48Z Hold to v10.0.0 version - - 4f78cc081 2023-07-26T22:28:44+08:00 pkg/flags: fix UniqueURLs'Set to remove duplicates in UniqueURLs'uss - - 516e096a9 2023-07-26T21:32:16+08:00 tests/robustness: enhance compact failpoint - - da58ac984 2023-07-26T13:02:43+05:30 Bump github.com/mattn/go-runewidth to v0.0.15 - - cb4d3a569 2023-07-25T15:54:22+01:00 Documentation: add a roadmap - - 0e8c52504 2023-07-24T17:56:26Z build(deps): bump github/codeql-action from 2.20.4 to 2.21.0 - - 1010115b8 2023-07-24T15:53:04+02:00 server: switch to semconv v1.17.0 - - 0f975acf2 2023-07-24T15:48:55+08:00 update typo in raft.go - - 0a314c9da 2023-07-23T22:47:17+09:00 Fix typo in triage_issues.md - - 8d85baec8 2023-07-21T16:14:59+01:00 dependency: bump github.com/cheggaaa/pb/v3 from 3.1.2 to 3.1.4 for etcdctl and tests - - 824337a27 2023-07-21T16:12:27+01:00 build(deps): bump github.com/cheggaaa/pb/v3 from 3.1.2 to 3.1.4 - - 51a22c21f 2023-07-19T21:58:33+08:00 tests: cleanup unnecessary assignment in cluster.go - - fddd1add5 2023-07-18T23:18:01+08:00 pkg/ioutil: deflake TestPageWriterRandom - - 3ff012884 2023-07-18T21:57:51+12:00 Fix obtaining UPGRADE_VER in test.sh - - 2f65f5635 2023-07-18T20:16:55+12:00 Ensure release is run for arm64 e2e nightly tests. - - c3e520197 2023-07-18T15:48:48+08:00 clientv3: fix barrier.Wait() still block after barrier.Release() in some cases - - 03d8fff0d 2023-07-18T15:22:53+08:00 clientv3: add Ctx() to return context of session - - ea7219493 2023-07-17T23:53:02-07:00 Fix flaky integration/clientv3/naming TestEtcdGrpcResolverRoundRobin - - b71f33574 2023-07-17T17:40:07Z build(deps): bump github.com/mikefarah/yq/v4 in /tools/mod - - 91215fb1c 2023-07-17T17:24:31Z build(deps): bump github/codeql-action from 2.20.3 to 2.20.4 - - 223a75b39 2023-07-17T19:37:15+08:00 etcdctl/ctlv3/command: simplify code using fmt.Printf with '\n' - - e282e6c11 2023-07-17T09:32:59Z Fix typo in mixin Makefile - - 6a9ea5ba6 2023-07-17T13:39:15+08:00 Add changelog for backport 13577 to 3.4&3.5. - - 5e65553d2 2023-07-17T13:14:15+08:00 pkg/expect: avoid hardcoding when checking ErrProcessDone - - bc97a9456 2023-07-14T20:08:25-05:00 Follow up https://github.com/etcd-io/etcd/pull/16068#discussion_r1263664700 - - f5644361d 2023-07-15T00:16:51Z Refactor monitroing mixin's dashboard - - a3bd22bee 2023-07-15T00:16:51Z Add etcd_selector to dashboard queries - - f8d4b4ef9 2023-07-15T00:16:51Z Added lint config & alert summaries - - b424e6028 2023-07-14T16:46:26-03:00 Update protoc from 3.14.0 to 3.20.3 - - abbfc2964 2023-07-14T16:46:26-03:00 Fix goword issue - - b798aae9c 2023-07-14T16:46:26-03:00 Update golangci-lint from 1.49.0 to 1.53.3 - - a35d24ab7 2023-07-13T21:46:04+12:00 Add jmhbnz as etcd reviewer. - - 6760dc957 2023-07-13T17:01:01+08:00 remove repetitive the - - 5ffac59d8 2023-07-13T20:58:16+12:00 Add new job for nightly release35 arm64 robustness. - - 56edfa6e2 2023-07-13T14:56:21+08:00 pkg/expect: fix data race - - 8fd423332 2023-07-12T17:02:09+01:00 Changelog: add items to cover the fix of bumping go to 1.19.11 - - 3c33fc1cf 2023-07-12T16:47:49+01:00 bump go version to 1.19.11 - - 06579d9cd 2023-07-11T14:34:51-05:00 expose op.isOptsWithFromKey and op.isOptsWithPrefix - - d934510bd 2023-07-11T10:38:08+01:00 Changelog: update etcd 3.4.27's release date - - c2474d299 2023-07-11T14:55:28+08:00 CHANGELOG: add item for 3.4.27 - - bad0894aa 2023-07-10T18:51:51+01:00 dependency: bump gotest.tools/gotestsum from v1.10.0 to v1.10.1 - - 2c22ca7eb 2023-07-10T18:43:30+01:00 dependency: bump golang.org/x/net from v0.11.0 to v0.12.0 - - 843ddb4b1 2023-07-10T18:40:35+01:00 dependency: bump golang.org/x/crypto from v0.10.0 to v0.11.0 - - 149256735 2023-07-10T18:38:16+01:00 dependency: bump golang.org/x/sys from v0.9.0 to v0.10.0 - - 0afea0776 2023-07-10T17:25:31Z build(deps): bump github/codeql-action from 2.20.2 to 2.20.3 - - 2ec12e4b4 2023-07-10T08:16:00-03:00 clientv3: prevent nil pointer call in get method - - 21eb8d2c3 2023-07-10T01:11:23+08:00 clientv3: create keepAliveCtxCloser goroutine only if ctx can be canceled - - 4755a1646 2023-07-07T01:16:47-07:00 Update MAINTAINERS - - e3e58880d 2023-07-07T00:29:49-07:00 Update CHANGELOG for #16029 #16165 #16193 - - 70c8f04a1 2023-07-07T15:07:12+08:00 tools/benchmark: support --count-only for range - - 0b6fd24af 2023-07-07T15:00:37+12:00 Update community meeting frequency to fortnightly. - - e5f6673e1 2023-07-06T09:05:16-07:00 tests: exclude learner endpoints from MemberPromote - - 6f94f118e 2023-07-06T17:22:10+08:00 update changelog for #16188 - - eff9517a9 2023-07-05T14:09:40-05:00 etcdserver: add cluster id check for hashKVHandler - - a8a9ebd28 2023-07-05T11:33:08+02:00 auth: Support for EdDSA JWT algorithm - - 3d3e91c6e 2023-07-04T22:01:54+08:00 clientv3: remove v3.WithFirstKey() in Barrier.Wait() - - c03965aeb 2023-07-03T17:49:04Z build(deps): bump github/codeql-action from 2.20.1 to 2.20.2 - - 11e90c0bd 2023-07-03T17:23:21Z build(deps): bump gotest.tools/v3 from 3.4.0 to 3.5.0 in /tools/mod - - 49d6d7e25 2023-07-03T13:50:26+01:00 etcdutl: update description for --mark-compacted and --bump-revision flags in snapshot restore command - - 8fca6ebdb 2023-07-03T14:39:23+02:00 tests/robustness: Prevent to many concurrent non-unique writes which are causing linearization to timeout - - ffe73f9a1 2023-06-30T22:03:29-05:00 add tests for uber applier - - 856790de3 2023-06-29T20:39:15+12:00 Templated arm64 e2e workflows for main and release-3.5. - - 4ea8da7df 2023-06-29T20:39:09+12:00 Templated arm64 integration workflows for main and release-3.5. - - 249e6c27d 2023-06-28T23:54:20-07:00 update README about profile learner - - 11da84a1d 2023-06-28T15:35:17+02:00 tests/robustness: Implement loading client reports - - 37bd1e338 2023-06-28T12:39:27+05:30 Bump dependency manually - - 7bd77c2e6 2023-06-28T11:51:46+08:00 etcdutl: fix db double closed - - be3e85126 2023-06-27T09:26:25-04:00 Adding optional revision bump and mark compacted to snapshot restore - - 24ecae0c3 2023-06-27T08:26:18Z build(deps): bump github/codeql-action from 2.20.0 to 2.20.1 - - 7b7f9740b 2023-06-27T08:26:16Z build(deps): bump ossf/scorecard-action from 2.1.3 to 2.2.0 - - 6cdc9ae4f 2023-06-26T22:42:44-07:00 server/etcdserver/raft.go: - - 9f68fcc60 2023-06-26T18:03:19-05:00 fix action tag comment pattern to be consistent - - ad3b6ee4c 2023-06-26T13:40:51-07:00 etcdserver: wait for raft is notified on confChange before responding to client - - 8e161b68f 2023-06-26T09:09:39-07:00 add runtime reconfiguration tests - - 09c462e2e 2023-06-26T12:12:39+02:00 tests/robustness: Add resumable validation and improve reliable validation - - b3316c0e0 2023-06-25T10:39:34+08:00 *: should return exitCode even if cmd isn't nil - - e73f26339 2023-06-25T08:34:34+12:00 Update 3.4 and 3.5 changelogs for compile with 1.19.10 - - 26cd2bc01 2023-06-24T18:15:50+02:00 tests/robustness: Store whole watch operations - - 1f6e1102a 2023-06-24T11:20:12+02:00 tests/robustness: Fix operation patching for txn with onFailure operations - - 0ae8f26f0 2023-06-24T11:19:24+02:00 tests/robustness: Refactor patch operation functions - - 78ca04a94 2023-06-23T18:40:07+02:00 tests/robustness: Combine watch histories - - 11aa59c42 2023-06-23T10:58:30-05:00 etcdserver: add tests for apply_auth.go - - b92981606 2023-06-23T16:39:09+02:00 dependency: bump github.com/prometheus/client_golang v1.15.1 to v1.16.0 - - d8ae7de3a 2023-06-23T16:38:18+02:00 dependency: bump golang.org/x/sync from 0.2.0 to 0.3.0 - - c3720fac3 2023-06-23T09:44:22+02:00 tests/robustness: Implement Kubernetes pagination - - 2e7cb772b 2023-06-22T18:36:43+02:00 tests/robustness: Implement proper range requests - - f7831e260 2023-06-22T18:27:54+02:00 tests/robustness: Move key into dedicated options to allow to implement proper ranges - - 3f09a51c6 2023-06-22T15:43:27+02:00 tests/robustness: Make watch event independent from etcd operation - - 0d2d383f0 2023-06-22T14:27:31+02:00 tests/robustness: Fix multi txn key prefix - - 6d79b8621 2023-06-21T23:13:46-07:00 Enable failpoint by default in integration tests - - 090724b75 2023-06-22T08:25:04+12:00 Document steps for setting up new actions runner. - - 9fc438cb6 2023-06-21T18:03:41+02:00 tests/robustness: Add List and StaleList requests to etcd traffic - - e3f2638ae 2023-06-21T12:18:20+02:00 update change logs with lease put improvements - - 519617cfd 2023-06-20T09:45:23+02:00 tests/robustness: Tune Kubernetes tests to reduce number of delete requests - - 1217548ac 2023-06-20T09:16:36+02:00 tests/robustness: Separate traffic name from cluster setup in test name - - 1d472bb6e 2023-06-19T18:01:17Z build(deps): bump github/codeql-action from 2.3.6 to 2.20.0 - - 550aa152a 2023-06-19T16:00:04Z Verify consistent index is latest at the time of snapshot - - 1663600be 2023-06-19T14:17:38+02:00 tests/robustness: Validate stale get requests by replaying etcd state - - 09b9f889e 2023-06-19T12:08:17+02:00 tests/robustness: Refactor etcd traffic client - - b92d09936 2023-06-19T09:25:07+01:00 dependency: bump golang.org/x/net from 0.10.0 to 0.11.0 - - 43b2477c2 2023-06-17T17:30:20+02:00 tests/robustness: Retry injecting failpoint - - f140cc14b 2023-06-17T21:01:55+12:00 Document new arm64 infra process. - - 96987d8b5 2023-06-16T21:17:37+02:00 tests/robustness: Implement stale reads without validation - - ea3255b47 2023-06-16T13:50:20+02:00 tests/robustness: Limit model to start only from fresh state - - fb16bca44 2023-06-16T13:26:24+02:00 tests/robustness: Disable blackhole until snapshot for v3.5 and v3.4 - - 2791422f7 2023-06-16T21:47:46+12:00 Ensure goimports can be fixed individually. - - 8c483f31a 2023-06-16T21:20:45+12:00 Ensure Makefile PHONY targets match real target names. - - 34cbf4cd6 2023-06-15T22:25:48+02:00 tests/robustness: Allow errors and unknown responses in deterministic model - - 84a9af17c 2023-06-15T15:57:44+02:00 Add first unit test for authApplierV3 - - 697931810 2023-06-14T13:55:45+02:00 tests/robustness: Make Range a proper request type to allow setting Range.Revision != 0 for stale reads - - 974655e02 2023-06-14T13:24:14+02:00 tests/robustness: Rename operations const to separate from RequestType - - 7bbc738ec 2023-06-14T09:14:27+02:00 tests/robustness: Extract validation to separate package - - a268a67e4 2023-06-13T21:09:05+02:00 tests/robustness: Move get to list of randomized operations - - e9fa3d30d 2023-06-13T18:33:03Z Enable test to verify membership recovery from backend - - 3a8c6d749 2023-06-13T23:28:47+05:30 manual dependency bump - - 2b8148310 2023-06-13T17:38:04Z Adding test for version update function used in 3.6 - - 06350aba4 2023-06-13T17:23:49Z Update downgrade test to use snapshot - - cdff0b3a3 2023-06-12T17:59:49Z build(deps): bump actions/checkout from 3.5.2 to 3.5.3 - - 09921806a 2023-06-12T17:59:42Z build(deps): bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 - - 03c9e71b4 2023-06-12T09:52:56+08:00 update 3.4 and 3.5 changelogs - - f410c6e6d 2023-06-09T22:42:17+02:00 tests/robustness: Provide a response diff in model test to make debugging easier - - 53af85487 2023-06-09T22:38:16+02:00 tests/robustness: Assume starting from empty etcd instead of throwing out first failed request - - f91f6d841 2023-06-09T22:30:53+02:00 tests/robustness: Put traffic type on second place before cluster size in test name - - eb56d86e4 2023-06-09T20:54:46+02:00 .github/workflows: Read .go-version as a step and not separate workflow - - b80fb0a1c 2023-06-09T20:39:57+02:00 tests/e2e: Use epc.Etcdctl - - dffc35e42 2023-06-09T18:37:09+05:30 remove Procfile.v2 and Procfile.learner - - e6c8bf82e 2023-06-08T15:54:30-07:00 add uds test cases into e2e TestAuthority - - 798d2b792 2023-06-08T14:29:57+08:00 add compact hash check to help - - b9e30bf87 2023-06-07T19:54:09-05:00 etcdserver: add e2e test to reproduce the incorrect hash issue when resuming scheduled compaction. - - b2c39fc8e 2023-06-06T20:18:44-07:00 2023-06-06: bump up dependencies update identified by dependabot - - dcc4c1efb 2023-06-07T14:02:18+12:00 Update the go version to 1.19.10 patch release. - - 3d40ee69b 2023-06-07T09:50:53+12:00 Begin documenting etcd infrastructure. - - 0f32b588b 2023-06-06T19:08:31+08:00 ci: move .golangci.yaml to tools dir - - dfbe2038f 2023-06-06T10:23:46+02:00 Early exit auth check on lease puts - - 64b11ef8b 2023-06-05T17:59:38Z build(deps): bump github/codeql-action from 2.3.5 to 2.3.6 - - caf9a0dad 2023-06-05T17:59:34Z build(deps): bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 - - 4a2fdb8ba 2023-06-05T21:32:28+12:00 Promote faqs in README.md. - - 41b5e2174 2023-06-05T21:32:03+12:00 Add a checklist for reporting bugs, include faq link. - - b46dc0a1e 2023-06-05T05:49:03+05:30 Clean golang test cache - - 3b7e1223a 2023-06-04T22:39:48+12:00 Fix errors in README.md reported by markdownlint. - - a9864d4ed 2023-06-02T15:53:08+08:00 etcdctl: update the description for flag '--rev' - - 41446dbad 2023-06-01T20:30:48+12:00 Clean golang test cache before each arm64 ci test suite. - - 8f887d3a7 2023-06-01T09:06:36+08:00 ci: add fix-yamllint rule in Makefile - - ea47d5bec 2023-05-30T17:34:18-04:00 Update roles reference - - 59b852268 2023-05-30T11:40:15+08:00 dependency: bump github.com/mikefarah/yq/v4 from 4.33.3 to 4.34.1 in /tools/mod - - 42e2c9d4c 2023-05-29T18:00:17Z build(deps): bump arduino/setup-protoc from 1.2.0 to 1.3.0 - - 904e5072d 2023-05-29T06:13:22Z build(deps): bump github/codeql-action from 2.3.3 to 2.3.5 - - ef9b6a628 2023-05-28T10:16:56+12:00 Strengthen etcd support policy. - - dd961320f 2023-05-26T10:19:47Z update changelog for #15939 - - b0b922cd7 2023-05-26T16:34:23+08:00 ci: Introduce yamllint for actions workflow files - - 16bf0f664 2023-05-25T22:17:23+02:00 tests/robustness: Use traffic.RecordingClient in watch - - 08a4cd46f 2023-05-25T22:43:36+09:00 Documentation: describe onboarding process - - b365f3cda 2023-05-25T15:26:25+08:00 tools/benchmark: support limit flag for range - - ef91e8ae7 2023-05-24T23:58:13-07:00 dependency: bump github.com/stretchr/testify from 1.8.2 to 1.8.3 - - 4418e793a 2023-05-24T23:32:05-07:00 dependency: bump github.com/mgechev/revive from 1.3.1 to 1.3.2 in /tools/mod - - 9e1e378e9 2023-05-24T12:54:27-07:00 update code comments - - 24b3ae9a1 2023-05-24T19:55:30+08:00 add the rotation worksheet into the dependency management document - - 2efecd197 2023-05-23T14:25:46-04:00 benchmarks: pin dependencies of rw-heatmaps - - 4872b679a 2023-05-23T15:51:10+02:00 tests/robustness: Expect revions to be unique for Kubernetes Traffic - - b2ee9887d 2023-05-23T21:15:38+12:00 Add example format for initial-cluster. - - a0063d76e 2023-05-23T20:18:40+12:00 Run arm64 robustness tests in a container. - - 4153ecb93 2023-05-23T20:18:32+12:00 Run arm64 e2e tests in a container. - - bdfa70d02 2023-05-23T20:18:14+12:00 Run arm64 unit and integration tests in a container. - - 820bcddc6 2023-05-22T18:00:38Z build(deps): bump arduino/setup-protoc from 1.1.2 to 1.2.0 - - fbc34d122 2023-05-22T09:09:02+08:00 clientv3: refactor snapshot SaveWithVersion - - befb283cc 2023-05-19T18:22:18+08:00 tests: deflake TestKVDelete/ClientAutoTLS - - 523a96145 2023-05-19T17:20:49+08:00 update changelog for https://github.com/etcd-io/etcd/pull/15907 - - 0c919dc21 2023-05-19T10:44:58+08:00 use the more efficient strings.Builder - - a708e9474 2023-05-16T21:25:34-04:00 server/storage/schema: prefer equal to compare for equality comparisons - - 75b09410e 2023-05-16T16:53:35+02:00 Update maintainers emails - - 6429f4763 2023-05-16T10:28:01+02:00 tests/robustness: Validate all etcd watches opened to etcd - - 112aad1ea 2023-05-16T10:13:08+02:00 tests/robustness: Unify model test cases - - 5a5b5a1c5 2023-05-16T09:26:44+12:00 dependency: bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1 - - 1798730cd 2023-05-16T08:39:19+12:00 dependency: bump golang.org/x/crypto from 0.8.0 to 0.9.0 - - 29f9d0652 2023-05-15T18:00:00Z build(deps): bump actions/setup-go from 4.0.0 to 4.0.1 - - 6e5379256 2023-05-15T13:45:27+02:00 tests/robustness: Implement Kubernetes optimistic concurrency operations - - 911c40a34 2023-05-15T10:11:05+02:00 tests/robustness: Implement kubernetes list watch protocol - - ca221208d 2023-05-15T10:59:02+08:00 grpcproxy: fix memberlist results not update when proxy node down - - c338882d7 2023-05-14T12:58:13-07:00 tests/robustness: use monotonic clock for watch events - - 012b429f1 2023-05-13T19:28:28+12:00 Only run robustness on arm64 nightly. - - 2bf495d93 2023-05-13T13:53:22+08:00 workflow: grant only read permission to all workflows - - c846b087d 2023-05-12T22:51:47-07:00 migrate e2e auth tests to common #8 - - 941d760e4 2023-05-13T13:14:00+12:00 Initial re-write for contributor issue triage guide. - - ffe41987f 2023-05-13T08:12:23+12:00 Add self-hosted label to existing arm64 tests. - - 09ae3a641 2023-05-13T08:11:53+12:00 Run robustness tests on arm64. - - 831ce4c3c 2023-05-12T13:10:25+02:00 tests/robustness: Improve naming of Txn fields - - d0ca53628 2023-05-12T14:57:08+08:00 changelog: update the release date of 3.4.26 and 3.5.9 - - e9900f6ff 2023-05-11T21:03:52+02:00 tests/robustness: Separate stream id from client id and improve AppendableHistory doc - - db07ec956 2023-05-11T18:06:39+05:30 dependency: bump indirect zmap dependencies - - 9878b134e 2023-05-11T18:00:12+05:30 dependency: bump indirect dependencies - - 962e15038 2023-05-11T13:12:09+02:00 tests/robustness: Add safeguards to client and history - - 165a76b50 2023-05-10T16:08:08+02:00 tests/robustness: Fix pointer causing all cluster tests using kubernetes traffic - - 1c455d499 2023-05-10T19:25:28+08:00 changelog: add items to cover the fix that LeaseTimeToLive API may return keys to clients which have no read permission on the keys - - dd248518d 2023-05-10T11:43:02+02:00 tests/robustness: Move request progress field from traffic to watch config and pass testScenario to reduce number of arguments - - 3f5ad3603 2023-05-10T21:03:01+12:00 Deflake TestEtcdGrpcResolverRoundRobin. - - f31d0eafb 2023-05-09T17:08:53-07:00 tests/e2e: add graceful shutdown test - - a7344da7d 2023-05-09T23:10:44+08:00 server: default value for config file field auto-compaction-mode is now 'periodic'; added additional checks if auto-compaction-mode is undefined - - c863f1f8c 2023-05-09T18:38:35+05:30 dependency: bump dependabot dependencies - - aa373e54d 2023-05-09T12:32:25+02:00 Move go version to dedicated .go-version file - - ad20230e0 2023-05-09T10:50:13+02:00 test/robustness: Create dedicated traffic package - - b14b46866 2023-05-08T19:58:38+02:00 tests/robustness: Make weighted pick random generic - - a0cffb6a1 2023-05-08T22:53:04+09:00 server/etcdserver: swap order of return types - - 0cd1b7bea 2023-05-08T15:23:29+08:00 log time when open backend db took too long - - bb057ddae 2023-05-08T10:58:02+12:00 Update 3.4 and 3.5 changelogs for compile with 1.19.9. - - ac61b36e0 2023-05-07T00:43:30-07:00 Add an option to keep_going with run for modules on failure - - 7c68be4cf 2023-05-07T09:32:07+02:00 tests/robustness: Implement Range limit and count - - 40f71ef3c 2023-05-05T13:40:46+02:00 tests/robustness: Implement delete request for kubernetes scenario - - 92366a533 2023-05-05T12:25:10+02:00 tests/robustness: Split model code into deterministic and non-deterministic - - d10cabd3f 2023-05-04T23:47:44Z build(deps): bump github/codeql-action from 2.3.2 to 2.3.3 - - 58ec96a6c 2023-05-04T23:47:40Z build(deps): bump actions/upload-artifact from 2 to 3 - - e9b1a0e70 2023-05-04T15:33:31-07:00 remove invalid arm64 workflow config - - cfe154209 2023-05-04T14:03:18+02:00 tests/robustness: Separate describe model functions to dedicated file - - 9b5680c5f 2023-05-04T13:26:54+02:00 tests/robustness: Implement first step in validating the Kubernetes-etcd contract. - - b84e4273f 2023-05-04T11:00:08+12:00 Updated go to latest patch release 1.19.9. - - c9998a7e6 2023-05-03T00:57:49-07:00 keep_going with other suites when failure with one - - a00ec2e91 2023-05-03T14:51:34+08:00 etcd: Add OpenBSD-specific files for SetKeepAlivePeriod handling - - bb060586c 2023-05-02T20:40:06-07:00 dependency_management.md: document go.opentelemetry.io/otel version update is blocked - - 4c4bd63fa 2023-05-01T18:03:06Z build(deps): bump github/codeql-action from 2.3.0 to 2.3.2 - - b9533ca98 2023-04-29T14:14:16+12:00 Deflake TestEtcdGrpcResolverRoundRobin. - - 09d053e03 2023-04-29T07:03:47+08:00 tests/robustness: tune timeout policy - - 7e2e5c68d 2023-04-28T15:21:06+02:00 Provide release data for v3.5.8 - - b05209229 2023-04-28T10:43:30+08:00 refactor(util): remove duplicate lg check - - 81fccc13d 2023-04-27T05:26:38-07:00 Add -failfast flag when the mode is fail_fast - - c7d81acaf 2023-04-27T14:54:35+08:00 test: forcibly save data on pinicking - - 26fdf4600 2023-04-26T20:45:13+08:00 close the session to avoid leak goroutine - - c9b368119 2023-04-26T20:35:20+09:00 tests: e2e and integration test for timetolive - - 975854f07 2023-04-26T20:35:20+09:00 etcdserver: protect lease timetilive with auth - - ab65ee3d0 2023-04-26T17:09:25+12:00 Consolidate etcd dockerfiles. - - b4f49a55a 2023-04-26T11:14:50+08:00 chore: deprecate github.com/hexfusion/schwag - - 045192683 2023-04-25T15:33:03+02:00 Move credits to subscript - - 2fd9a1914 2023-04-25T14:49:50+02:00 Incorporate xkcd dependency meme into README - - aa787d9f5 2023-04-25T14:44:34+08:00 dependency: bump github.com/alexkohler/nakedret from 1.0.1 to 1.0.2 - - 18e3acae0 2023-04-25T18:44:24+12:00 Add new test for round robin resolver. - - a2426712c 2023-04-24T18:01:36Z build(deps): bump github/codeql-action from 2.2.12 to 2.3.0 - - d589a0b5f 2023-04-24T18:29:09+08:00 Document: add guidance on dependency management - - 146f44d35 2023-04-24T07:08:28+08:00 change the minimum recommended etcd versions to run in production to 3.4.22+ and 3.5.6+ - - 32c83becf 2023-04-22T23:16:33+02:00 fix review: Updated description of --initial-cluster-state flag - - 1ba577e49 2023-04-22T18:35:53+08:00 server/etcdserver: togRPCError for maintenance API - - aad63a1ef 2023-04-21T05:40:03+12:00 dependency: bump github.com/mikefarah/yq/v4 from 4.33.1 to 4.33.3 - - 04f3e9cb9 2023-04-21T05:34:21+12:00 dependency: bump golang.org/x/crypto from 0.7.0 to 0.8.0 - - 042e2e9a5 2023-04-21T05:14:40+12:00 dependency: bump github.com/prometheus/client_golang from 1.14.0 to 1.15.0 - - 0df7c48dd 2023-04-20T11:42:28Z Centralizing workflow go-version variable Signed-off-by: Juan <1766933+judavi@users.noreply.github.com> - - 1c18c86e1 2023-04-20T13:39:08+02:00 tests: increases unit test coverage for etcd/server/auth isRangeOpPermitted - - 57908723f 2023-04-20T14:26:17+08:00 fix some comments - - 9d14ae43c 2023-04-18T10:43:13-03:00 fix review: remove if on error check - - ecc7441ba 2023-04-18T10:02:03-03:00 fix review: use assert lib - - 50aa00b20 2023-04-18T09:00:24+08:00 tests: make log monitor as common helper - - 64c9a5c70 2023-04-17T18:01:44Z build(deps): bump github/codeql-action from 2.2.11 to 2.2.12 - - b1e14c7d0 2023-04-17T18:01:42Z build(deps): bump actions/checkout from 3.5.0 to 3.5.2 - - 3654552fe 2023-04-17T08:19:10-03:00 fix review: move setup and vars - - 7a7e09d3a 2023-04-16T19:59:47-03:00 fix review: group calls - - 41b1d36bd 2023-04-16T17:44:46-03:00 fix review - - a1a2f43f2 2023-04-16T17:41:59-03:00 fix review - - 8fb839eac 2023-04-16T17:09:02-03:00 Update server/etcdserver/txn/txn_test.go - - 4c6361176 2023-04-16T13:24:12-03:00 tests: cover txn.CheckTxnAuth logic with unit tests - - 8aa00159d 2023-04-14T20:08:56+12:00 Add issue template for new membership nominations. - - 003ae7a5a 2023-04-14T15:49:20+08:00 change v3.4.25's release date - - 9f034fbaa 2023-04-13T12:06:31+08:00 chore: use tools/mod to lock the cfssl cmd version - - 9dc54ca32 2023-04-13T12:05:39+08:00 chore: add strict mode for pkg/proxy/fixtures/gencerts.sh - - dc2cf2959 2023-04-13T12:05:39+08:00 chore: add strict mode to scripts/test_lib.sh - - 8cd596924 2023-04-13T12:05:39+08:00 chore: use strict mode for tests/*/*.sh - - 78d2ead80 2023-04-13T12:05:39+08:00 chore: deprecate tests/manual folder - - e48ef9ea6 2023-04-12T14:39:57+02:00 tests/robustness: Disable blackholing traffic till snapshot for v3.4.X - - d19752f16 2023-04-12T14:38:30+02:00 tests/robustness: Unify failpoint lists by depending on availability checking - - 625d427eb 2023-04-12T14:36:50+02:00 tests/robustness: Separate triggering failpoint from injection - - 932415a8d 2023-04-12T14:36:50+02:00 tests/robustness: Verify cluster configuration in failpoint availability - - 941c4afb0 2023-04-11T22:08:18-07:00 tests/framwork/e2e/cluster.go: revert back to sequential cluster stop to reduce e2e test run time - - 946be6b3a 2023-04-11T12:59:06+08:00 changelog: add items to cover some fixes for 3.5.8 and 3.4.25 - - dae1d7018 2023-04-11T12:01:09+08:00 test: workaround the breaking change in jonboulle/clockwork - - ff0862512 2023-04-11T08:56:09+08:00 dedpendency: bump gotest.tools/gotestsum from 1.9.0 to 1.10.0 - - dddd4780c 2023-04-11T08:51:26+08:00 dependency: bump github.com/spf13/cobra from 1.6.1 to 1.7.0 - - a283eb5e0 2023-04-11T08:47:31+08:00 dependency: bump golang.org/x/sys from 0.6.0 to 0.7.0 - - eb9b15bf4 2023-04-11T08:44:26+08:00 dependency: bump golang.org/x/net from 0.8.0 to 0.9.0 - - 8a27dd4db 2023-04-11T08:36:44+08:00 dependency: bump github.com/jonboulle/clockwork from 0.3.0 to 0.4.0 - - ffdd8d79a 2023-04-11T10:57:41+12:00 Fix gofmt for client/pkg/fileutil/preallocate.go. - - 536953ec6 2023-04-10T22:27:58+08:00 tests: deflake TestV3WatchRestoreSnapshotUnsync - - 53cce3168 2023-04-10T12:58:44+08:00 Fix link for maintainers role and responsibilities in README.md - - a1fa3bfe5 2023-04-10T09:38:49+05:30 Add test cases for malformed jwt fix - - a3743a79b 2023-04-10T09:16:39+08:00 tests: use separate errc for each case in TestTxnPanics - - 85b4da612 2023-04-09T12:57:32+08:00 chore: remove pkg/expect TODO comment - - ce089755e 2023-04-08T06:58:00Z build(deps): bump github/codeql-action from 2.2.10 to 2.2.11 - - d72220400 2023-04-07T10:41:51+02:00 Require 2FA enabled for all members - - 64176be02 2023-04-07T13:47:13+08:00 changelog: update items to cover some changes in 3.5 and 3.4 - - 4ea5c08ab 2023-04-07T13:06:23+08:00 build(deps): bump github/codeql-action from 2.2.9 to 2.2.10 - - 89f3e20c1 2023-04-06T21:12:13+02:00 Update maintainer list - - 34bb7ed7a 2023-04-06T14:42:20+02:00 changelog: Refactor changelog and add changes for v3.5.8 - - a5a5862e0 2023-04-06T13:29:37+02:00 tests: Make using etcdctl expicit in e2e tests - - 8b1cd036f 2023-04-06T17:11:54+08:00 security: remove password after authenticating the user - - 801bb4c6d 2023-04-06T16:47:31+08:00 test: add an e2e test to reproduce https://nvd.nist.gov/vuln/detail/CVE-2021-28235 - - 2d0d3c3fd 2023-04-06T13:38:58+08:00 security: bump go to 1.19.8 to fix four CVEs - - 540d012e5 2023-04-05T23:04:20+02:00 tests/robustness: Ensure that etcdctl binary is provided - - 1e41d95ab 2023-04-05T22:40:47+02:00 tests/robustness: Document analysing watch issue - - 651873cf7 2023-04-05T15:32:31+02:00 tests/framework: Cleanup alternative binaries in e2e tests - - 74feb229c 2023-04-05T11:54:10+01:00 etcdserver: Guarantee order of requested progress notifications - - 42a2643df 2023-04-05T11:23:02+01:00 tests/robustness: Reproduce issue #15220 - - af25936fb 2023-04-05T11:19:07+01:00 tests/integration: Demonstrate manual progress notification race - - 5bae6b1e4 2023-04-04T15:23:58+02:00 tests/robustness: Detect trigger timeout and exit - - aaf8919a1 2023-04-04T21:56:46+09:00 changelog: add items to cover 15294 - - 386aedef5 2023-04-04T18:01:55+05:30 [WIP]server/auth:fix panic on identical JWT token generation and auth - - 122775428 2023-04-04T13:58:17+02:00 Cancel watch if cluster not healthy before or after injecting failpoints. - - 6582e349d 2023-04-04T12:25:07+02:00 tests: Enfoce timeout on failpoints - - 6a5d32651 2023-04-04T09:40:17+02:00 tests: Ensure that operation history finishes with successful request - - 072c5cb5d 2023-04-04T15:28:09+08:00 dependency: bump google.golang.org/protobuf from 1.28.1 to 1.30.0 - - 56284d5df 2023-04-04T15:21:22+08:00 dependency: bump github.com/golang/protobuf from 1.5.2 to 1.5.3 - - 0c66fc9f2 2023-04-04T15:15:32+08:00 dependency: bump go.uber.org/multierr from 1.9.0 to 1.11.0 - - 757910958 2023-04-03T21:49:36-07:00 tests: increase maxWatchDelay to prevent flaky TestWatchDelay* - - caed563e0 2023-04-03T17:41:08-07:00 fix flaking auth member remove test - - 69afcd196 2023-04-03T21:13:36+02:00 tests: Fix comparing etcd version - - b4c1fb14e 2023-04-03T16:42:01+02:00 Move to community membership model closer to kubernetes one - - 9c72ecb1f 2023-04-03T15:06:10+02:00 tests: Fix building incorrect etcd version and make switch strict - - e57dcd5ce 2023-04-03T18:46:32+08:00 test: fix typo in robustness test - - 0cbd56e8b 2023-04-03T12:18:54+02:00 tests: Cleanup endpoints - - 029315f57 2023-04-03T10:43:06+02:00 tests/robustness: Support running snapshot tests on older versions - - 2d9d6bdbc 2023-04-02T18:05:56+08:00 CHANGELOG: add item into 3.5 - - 03214c023 2023-04-01T16:32:20+02:00 Revert "tests/robustness: Disable testing network blackhole until #15595 is fixed" - - 71ba0873e 2023-04-01T16:31:53+02:00 tests/robustness: Encrypt peer traffic to prevent proxy manipulating packets - - 38b7406eb 2023-04-01T07:02:49Z build(deps): bump ossf/scorecard-action from 2.1.2 to 2.1.3 - - 330f871ff 2023-03-31T20:02:49+08:00 contrib: fix raftexample README's raft library link. - - 013e25fab 2023-03-31T13:55:58+02:00 tests/robustness: Disable testing network blackhole until #15595 is fixed - - be7be3480 2023-03-31T10:26:11+02:00 client: Hide v2 client package - - 7ac443f72 2023-03-31T11:49:04+08:00 Fixes: #15266 All docker images of Architecture show amd64 - - 549087cd6 2023-03-30T13:37:31+02:00 server: Fix defer function closure escape - - 870d47884 2023-03-30T22:38:00+13:00 Merge e2e spawn files. - - f53594309 2023-03-30T11:15:19+02:00 Use makefile as entrypoint in CI - - 65add8cec 2023-03-30T09:49:45+02:00 tests: Test separate http port connection multiplexing - - bf12179a5 2023-03-30T09:49:45+02:00 server: Add --listen-client-http-urls flag to allow running grpc server separate from http server - - 419a56e51 2023-03-30T09:49:45+02:00 server: Pick one address that all grpc gateways connect to - - d1f674d62 2023-03-30T09:49:43+02:00 server: Extract resolveUrl helper function - - 85c48c4a6 2023-03-30T09:48:46+02:00 server: Separate client listener grouping from serving - - 0bd94bbae 2023-03-30T16:30:11+13:00 Remove defunct build_cov target. - - 4b87bb185 2023-03-30T15:44:17+13:00 Remove coverage implementation for ctl_v3_watch test. - - 3c40a68d0 2023-03-30T15:37:09+13:00 Remove nocov flags for e2e tests. - - 1b125300b 2023-03-30T15:17:53+13:00 Remove nocov implementation for e2e spawn. - - ad688b2a8 2023-03-29T11:41:10+02:00 tests: Ensure watch catches all events generated in traffic - - d9068cd81 2023-03-29T14:03:14+13:00 Document defining ciphers in example etcd config file. - - 11bf7ae41 2023-03-28T18:03:05-07:00 skip verification if db file does not exist - - a8c20f931 2023-03-28T11:30:32-07:00 add etcd test analyzer build and integrate into measure-test-flakiness workflow - - c54521156 2023-03-28T17:32:34+02:00 tests: Refactor watch validation - - d03ac88b3 2023-03-28T15:08:43+02:00 tests: Document robustness tests - - 9a2553fe2 2023-03-27T19:30:41-07:00 migrate auth tests to common #7 - - f9b08e5fd 2023-03-27T18:02:38Z build(deps): bump github/codeql-action from 2.2.8 to 2.2.9 - - 2ca482a76 2023-03-27T17:58:43Z build(deps): bump github.com/mikefarah/yq/v4 in /tools/mod - - cd240a9a2 2023-03-26T18:21:01+09:00 changelog: added item to cover reverting 14548 in release-3.4 - - 5f6dab414 2023-03-24T10:36:27Z build(deps): bump actions/checkout from 3.4.0 to 3.5.0 - - 14fbc98b2 2023-03-24T15:29:34+05:30 Make version check independent from put/get checks - - 0a9413308 2023-03-24T15:27:06+05:30 Use run --rm for version checks - - ab2a1b7ad 2023-03-24T14:32:23+05:30 Incorporate review comments - - d5e5f1b54 2023-03-24T13:33:48+05:30 scripts: Add testing of etcd in local image in release workflow. - - 8b9fc9ee4 2023-03-23T20:37:30Z Add new tls configuration options to CHANGELOG. - - 00c789f5b 2023-03-23T11:30:55+01:00 docs: Update status of postmortem action items - - 2d491356e 2023-03-22T22:28:33Z build(deps): bump github/codeql-action from 2.2.7 to 2.2.8 - - 1fcb78278 2023-03-22T18:00:41+08:00 chore: introduce strict bash mode for scripts,.github - - 0daf06fa8 2023-03-22T14:03:47+08:00 CHANGELOG: add item into 3.4/3.5 - - 3573d791e 2023-03-22T09:52:25+13:00 Remove e2e from coverage calculation. - - 8c4bbcc8c 2023-03-21T08:36:39+08:00 dependency: bump golang.org/x/ to 0.7.0 - - 1b2b89e37 2023-03-21T08:36:39+08:00 dependency: bump github.com/mgechev/revive to 1.3.1 and honnef.co/go/tools to 0.4.3 - - 64319cf9b 2023-03-21T00:33:10Z build(deps): bump actions/setup-go from 3.5.0 to 4.0.0 - - 586d053d8 2023-03-20T18:06:24Z build(deps): bump github/codeql-action from 2.2.6 to 2.2.7 - - dd6fa9fd1 2023-03-20T18:06:19Z build(deps): bump actions/checkout from 3.3.0 to 3.4.0 - - 561c94019 2023-03-20T16:26:02+01:00 Point coverage to correct branch - - 3e5fc2e4f 2023-03-20T11:15:42+01:00 tests: Enable BlackholeUntilSnapshot robustness scenario - - 7052d8998 2023-03-20T11:15:41+01:00 server: Test watch restore - - a690707c5 2023-03-20T11:11:48+01:00 mvcc: update minRev when watcher stays synced - - eb09e0054 2023-03-19T21:46:03+08:00 chore: refactor cleanup fn in mvcc test - - a9988e262 2023-03-18T21:48:58+08:00 server/embed: fix data race when start insecure grpc - - 830d9e9ea 2023-03-18T10:58:05+08:00 test: fix TestRestoreContinueUnfinishedCompaction - - d200f72d2 2023-03-18T10:58:00+08:00 test: should not leak goroutines after test finished - - d7f992c35 2023-03-17T15:15:13-07:00 enable pre-vote by default and add retry on member_test - - f163af2bc 2023-03-17T14:39:18-07:00 deflake TestTracing - - fcdf0ebd8 2023-03-17T14:15:54-07:00 document measure-test-flakiness.sh - - 91a5f01a4 2023-03-17T11:38:56+13:00 Add detailed long description for etcdctl txn. - - f312316e8 2023-03-17T10:26:34+13:00 Rename pr and issue triage docs to fix broken links. - - 8bc6b289f 2023-03-16T05:50:17Z add new goimport_pass - - dfc2c6d44 2023-03-15T15:56:39+01:00 tests: Add connection muiltiplexer testing - - aad24ebe2 2023-03-15T14:47:49+01:00 tests: Extract e2e test utils - - cbf819740 2023-03-15T09:27:51+01:00 tests: Allow specifying http version in curl - - ae30e5c2f 2023-03-15T09:27:51+01:00 tests: Refactor newClient args - - e87abf3f1 2023-03-14T16:35:43+01:00 tests: Refactor CURLPrefixArgs - - 67e3c784b 2023-03-14T16:35:43+01:00 tests: Remove MetricsURLScheme field - - f6ebff155 2023-03-14T18:37:52+13:00 Refactor: Use proper variable names for urls. - - 263dc15a3 2023-03-14T00:40:03Z build(deps): bump github.com/mikefarah/yq/v4 in /tools/mod - - a141585b1 2023-03-14T05:53:53+08:00 test: fix format error - - 97a080ba1 2023-03-13T18:05:12Z build(deps): bump github/codeql-action from 2.2.5 to 2.2.6 - - cd219ca8d 2023-03-13T17:39:17Z Update CONTRIBUTING.md reference for Codespaces - - 372042c37 2023-03-13T14:48:01+01:00 refactor: Use proper variable names for urls - - ad72900da 2023-03-12T20:49:09+08:00 server/auth: fix auth panic bug when user changes password - - 22bdc9130 2023-03-11T15:07:17+08:00 server/etcdserver: add log for terminating monitors - - 4a9ad47bc 2023-03-11T14:50:37+08:00 tests/integration: deflake #15409 - - 4dad1ed71 2023-03-10T19:58:09+02:00 FIX #13389 - - f3533f259 2023-03-10T12:42:34+01:00 server: Switch back to random scheduler to improve resilience to watch starvation - - 585dfe018 2023-03-10T12:42:33+01:00 test: Test etcd watch stream starvation under high read response load when sharing the same connection - - b4c499ed7 2023-03-09T22:28:25+13:00 Update contributing docs with new codespaces developement option. - - 5b3497555 2023-03-08T21:39:31+13:00 Updated go to 1.19.7. - - ebb5e74ac 2023-03-08T13:18:05+09:00 pkg/schedule:correct comparison for FIFO schedule test - - 3419230ee 2023-03-07T23:11:41+08:00 tests/integration: Update TestLeasingDeleteRangeContendTxn - - 1002346ce 2023-03-07T14:58:58+01:00 etcd-mixin: Limit etcdDatabaseHighFragmentationRatio to 100MB+ - - 7ed121986 2023-03-07T06:52:07+08:00 dependency: bump golang.org/x/net to v0.8.0 - - b53d63219 2023-03-07T06:17:01+08:00 dependency: bump github.com/cheggaaa/pb/v3 to v3.1.2 - - 275e10bcf 2023-03-06T20:21:03+13:00 Return default snapshot count to 10,000. - - c002e096b 2023-03-03T12:26:36-08:00 migration auth tests to common #5 - - 8c18bf8bc 2023-03-04T08:47:56+13:00 Add CHANGELOG entries for 3.4 and 3.5 go version 1.19. - - 63964ec78 2023-03-03T11:38:22+01:00 Fixing flaky TestLeasingDeleteRangeContendTxn - - 56423eacd 2023-03-03T15:44:47+08:00 dependency: bump go.opentelemetry.io/otel to v1.14.0 - - c767f429f 2023-03-03T09:50:14+08:00 rafthttp: replace inline code with existing function The isMsgApp function implements the judgment of the MsgApp message, use the isMsgApp function instead. - - 978325378 2023-03-03T07:03:25+13:00 Add initial .devcontainer for go.19. - - 8298ed820 2023-03-02T10:47:09+08:00 rpctypes: use status.Error() instead of status.New().Err() - - 6471b9e32 2023-03-01T13:30:21+01:00 workflows: Remove non-root gomod dependabot rules and enable dependency-type all to ensure upgrade of indirect dependencies - - d798816ba 2023-02-28T10:32:29-08:00 migrate auth tests to common #6 - - 5f872589c 2023-02-28T06:56:16+08:00 dependency: bump golang.org/x/sync to v0.1.0 - - bc55e615d 2023-02-28T06:54:08+08:00 dependency: bump golang.org/x/sys to v0.5.0 - - 6af2c9dbf 2023-02-28T06:51:55+08:00 dependency: bump golang.org/x/crypto to v0.6.0 - - f333148da 2023-02-28T06:49:39+08:00 dependency: bump golang.org/x/time to v0.3.0 - - d8b812708 2023-02-28T06:44:33+08:00 dependency: bump github.com/stretchr/testify from 1.8.1 to 1.8.2 - - 65eeb7ff1 2023-02-27T22:55:36+09:00 server/auth: disallow creating empty permission ranges - - d475cf81a 2023-02-26T14:36:18+01:00 tests: Rename linearizability tests to robustness - - 8aedd91a0 2023-02-25T08:42:06Z build(deps): bump golang.org/x/sys in /client/pkg - - 3de346259 2023-02-25T07:23:39+08:00 clientv3: update etcdctl's readme and comment of clientv3.WithSerializable to clarify the use cases - - 1f0d36184 2023-02-25T07:23:39+08:00 clientv3: support serializable MemberList operation - - 0c52e5e13 2023-02-24T23:21:07Z build(deps): bump github/codeql-action from 2.2.4 to 2.2.5 - - 2d2fbcc30 2023-02-25T11:25:33+13:00 Ensure we are using an up to date govulncheck. - - b93745a86 2023-02-23T10:46:31-08:00 migrate to auth test #4 - - 7dfd29b0c 2023-02-21T07:50:45+08:00 build(deps): bump github.com/mikefarah/yq/v4 in /tools/mod - - de9c0f8fe 2023-02-21T05:29:53+08:00 dependency: bump github.com/golang-jwt/jwt/v4 to v4.5.0 - - 66efadb8f 2023-02-21T05:23:04+08:00 build(deps): bump honnef.co/go/tools from 0.4.0 to 0.4.2 in /tools/mod - - b17b9c142 2023-02-20T11:53:41+08:00 chore: Use http constants to replace numbers as parameters - - 8e56e2f5c 2023-02-18T18:01:48+08:00 add mix version for snapshot e2e case - - a7e94c484 2023-02-17T11:29:47+08:00 security: bump golang.org/x/net to v0.7.0 to address CVE GO-2023-1571 - - ee6781bf6 2023-02-16T17:12:59+08:00 Bump to go 1.19.6 - - df9982397 2023-02-16T10:03:37+08:00 changelog: update the release date of v3.4.24 - - c36ea3fdc 2023-02-15T11:08:01-08:00 migrate auto tests to common #3 - - a36951ad1 2023-02-15T16:13:43+01:00 tests: Extract report related functions and clean up main file - - edfc96330 2023-02-15T13:59:03+01:00 tests: Detect duplicate watch event - - 0cd5c9ca3 2023-02-15T13:02:42+01:00 tests: Refactor reporting results - - d99b1dbda 2023-02-15T13:02:42+01:00 tests: Move results reporting to top and add reporting watch histories - - 58d74e2b7 2023-02-15T13:02:42+01:00 test: Refactor TestLinearizability function - - a64263cf4 2023-02-15T13:02:42+01:00 tests: Refactor persisting single member dir - - d0e5c44f6 2023-02-15T13:02:42+01:00 tests: Refactor getting test results directory - - 2afaddd5b 2023-02-15T13:02:42+01:00 tests: Refactor getting longest history - - d0c3112d5 2023-02-15T18:33:00+08:00 dependency: bump go.opentelemetry.io/otel from 1.11.2 to 1.13.0 - - d2ccb12f3 2023-02-15T01:37:21-08:00 tests: use monotonic clock for linearizability test history - - b55dbe88c 2023-02-15T10:26:34+01:00 tests: Codify kubernetes using response header revision as bookmark - - 04ba936ea 2023-02-14T17:57:52+01:00 tests: Implement multi operation Txn - - b4f9bb45f 2023-02-14T14:36:51+01:00 tests: Allow multiple operations with same mod revisions, but forbid those operations to be spread between multiple responses - - 597bac7b5 2023-02-14T08:20:06-05:00 Do not run arm64 jobs on forks - - 1d8fe11ad 2023-02-14T17:40:47+08:00 dependency: bump golang.org/x/net from 0.5.0 to 0.6.0 - - cc47f7bc7 2023-02-14T17:40:47+08:00 dependency: bump gopkg.in/natefinch/lumberjack.v2 from 2.0.0 to 2.2.1 - - e569217a6 2023-02-14T09:38:10+01:00 tests: Refactor blackholing - - 90f486f47 2023-02-14T07:28:41+08:00 Adding CHANGELOG entries for zap timestamp resolution fixes. - - 50532c9fb 2023-02-13T20:35:03+08:00 build(deps): bump github/codeql-action from 2.2.1 to 2.2.4 - - f005a20aa 2023-02-13T19:35:31+08:00 changelog: add items for the duplicated events issue - - b4dfa9d34 2023-02-13T19:22:31+08:00 test: correct the logic of comparing revision in linearizablity/watch.go - - 5f68ecc1e 2023-02-11T13:20:44+01:00 tests: Remove functional testing as they were replaced by linearizability tests - - 12d8742e2 2023-02-10T17:40:11Z Show darwin as supported in fileutil.Preallocate docstring - - 87e271701 2023-02-10T20:09:26+08:00 test: enhance the test case TestV3WatchProgressOnMemberRestart - - 36fc3cae6 2023-02-10T09:09:19+08:00 clientv3: correct the nextRev on receving progress notification response - - 2eadb0ab7 2023-02-09T16:05:37+08:00 contributing: invalid command for install tools - - 4b91ae280 2023-02-08T23:28:23-08:00 tests: trigger raftBeforeFollowerSend failpoint in linearizability test - - 39d98522d 2023-02-09T07:32:54+08:00 tests: Enable progress notify in linearizability tests - - 1fe7b9793 2023-02-08T09:08:09+08:00 etcdserver: add failpoints walBeforeSync and walAfterSync - - 8f54d38b6 2023-02-07T06:29:36+08:00 build(deps): bump honnef.co/go/tools from 0.3.3 to 0.4.0 in /tools/mod - - 189d90ab7 2023-02-06T16:58:17+01:00 tests: Validate watch responses in linearizability tests - - adf14f80b 2023-02-06T12:19:08+01:00 Update @serathius email address just in case - - 91b056968 2023-02-05T00:03:39-08:00 tests linearizability: trigger snapshot related failpoints - - 2183a55b4 2023-02-03T23:06:40+08:00 tests: forcestop member procs with signal kill - - fa527c5e5 2023-02-03T22:23:06+08:00 tests: support to stop the multiple members concurrently - - 4d715c0c4 2023-02-03T18:20:30+08:00 Add integration test for Arm64 - - 5f27af9bb 2023-02-03T21:42:01+13:00 Fix regression in timestamp resolution - - dc2b198cc 2023-02-03T06:37:03+08:00 docker: remove nsswitch.conf - - 009a6c0b9 2023-02-02T10:38:04+08:00 Add E2E tests on arm64 - - b10ebff3b 2023-02-02T03:47:31+08:00 changelog: add items to cover the bummping of bbolt to v1.3.7 - - 5a249fb3e 2023-02-01T18:04:11+08:00 tests/linearizability: remove PeerProxy for ClusterSize=1 - - 90b839dda 2023-01-31T12:48:23+01:00 tests: Disable defrag command as it caused problems with defragBeforeCopy failpoint - - 23e89b98a 2023-01-31T07:04:29+08:00 bump bbolt to v1.3.7 - - 82243d091 2023-01-31T06:50:42+08:00 netutil: consistently format ipv6 addresses - - aba0f9116 2023-01-31T05:43:34+08:00 build(deps): bump github.com/mgechev/revive in /tools/mod - - d0a481be8 2023-01-31T05:28:21+08:00 build(deps): bump github/codeql-action from 2.1.39 to 2.2.1 - - 588b98d08 2023-01-30T16:16:53+02:00 Add TLSv1.3 support. - - 0c004a6ce 2023-01-30T14:30:21+01:00 tests: Propagage logger through linearizability tests - - 535ade8eb 2023-01-30T13:26:33+01:00 tests: Increase failpoint timeout and add more logs - - b9b7c9328 2023-01-30T16:35:41+08:00 tools: fix the CSV format error and add build target 'tools' in Makefile - - 5b7b499f5 2023-01-30T15:19:53+08:00 fix(client):getToken automatically when the token has expired - - a21b89071 2023-01-30T11:43:55+08:00 CHANGELOG: add item about improvement for concurrent read - - 3d3cb460a 2023-01-29T06:12:03+08:00 test: reorder the import items in linearizability/model/model.go - - 070d56b6c 2023-01-27T17:56:18+08:00 changelog: add ipv6 comparison fix to 3.4 and 3.5 - - e2b8e8662 2023-01-27T10:02:22+08:00 etcdserver: correct the old name of notifyc in comments - - ef0bdbe48 2023-01-24T22:29:31+01:00 tests: Implement LargePut requests - - c50e60245 2023-01-24T21:49:57+01:00 tests: Add defragment request to linearizability tests - - 63902fafb 2023-01-25T03:47:07+08:00 Change verb and use switch stmt - - 5cfc2dd7a 2023-01-25T02:33:07+08:00 CHANGELOG: add item about improvement for limit range - - 057516665 2023-01-24T13:06:42-05:00 Run on a schedule instead of every PR - - cc612821e 2023-01-24T18:41:42+01:00 tests: Deduplicate cluster test scenarios - - 45e11687c 2023-01-24T15:48:01+01:00 tests: Stop cluster after tests finish - - 0d7b624fa 2023-01-24T16:59:37+08:00 dependency: bump github.com/google/addlicense from 1.1.0 to 1.1.1 - - 5b8d7698c 2023-01-24T16:59:37+08:00 dependency: bump github.com/coreos/go-semver from 0.3.0 to 0.3.1 - - 54bd81815 2023-01-24T08:10:43+08:00 build(deps): bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 - - 844ac9c76 2023-01-23T22:59:28+01:00 tests: Separate request type from Txn operation type - - 5f9497586 2023-01-23T16:10:24-05:00 Add functional tests on arm64 - - 21e21fe36 2023-01-23T18:21:44+08:00 changelog: Set release date for v3.5.7 - - 0f4d7a748 2023-01-21T15:57:48+03:00 Cleanup - - ee566c492 2023-01-20T18:35:49+08:00 build(deps): bump github/codeql-action from 2.1.38 to 2.1.39 - - 1a315097d 2023-01-20T09:51:41+01:00 tests: Set artifact name based to avoid file override from different subruns - - a581062c7 2023-01-20T09:13:51+01:00 tests: Fix linearizability nightly - - fab8474ef 2023-01-20T06:25:09+08:00 test: add CompactionSleepInterval in FakeStore's config - - fba3b9616 2023-01-19T06:39:37Z fix: typo in bug.yaml - - f629d4860 2023-01-18T09:43:30+01:00 Close file while persisting operation history - - 754e1ee4c 2023-01-18T09:51:42+08:00 CHANGELOG: add item about improvement for count-only range - - a0d12d316 2023-01-17T14:34:19+01:00 tests: Add reproduce #13766 scenario - - f763c53d5 2023-01-17T11:58:56+01:00 tests: Persist operation history - - 0c483830d 2023-01-17T10:40:05+01:00 tests: Fix linearizability nightly variable name - - de8d6b379 2023-01-17T16:58:13+08:00 etcdserver: use time.Ticker instead of time.After - - 1659f8980 2023-01-17T06:46:31+08:00 dependency: bump github/codeql-action from 2.1.37 to 2.1.38 - - b2d482e6d 2023-01-17T06:39:26+08:00 dependency: bump gotest.tools/gotestsum from v1.8.2 to v1.9.0 - - ac98432f0 2023-01-17T06:37:19+08:00 dependency: bump github.com/dustin/go-humanize from v1.0.0 to v1.0.1 - - 575ceed1c 2023-01-17T06:33:05+08:00 dependency: bump github.com/mikefarah/yq/v4 from v4.30.6 to v4.30.8 - - 8ed20e85d 2023-01-17T06:18:15+08:00 etcdserver: return membership.ErrIDNotFound when the memberID not found - - 96e2a7fbd 2023-01-16T19:16:27+01:00 tests: Move linearizability model and identity to dedicated packages - - ab3c530b9 2023-01-16T11:00:16+01:00 add linearizability nightlies for release 3.4/3.5 - - 5b8d19c7b 2023-01-14T09:29:12+01:00 tests: Reduce number of runs in nightly action - - 1257d0d91 2023-01-13T16:19:20+01:00 tests: Fix history patch window - - 0ccde80d2 2023-01-13T15:22:55+08:00 changelog: add items to cover the issue of prmoting a non-started learner member - - 743463642 2023-01-13T11:12:36+08:00 CHANGELOG: add dep update item to 3.4 - - 610691233 2023-01-12T23:25:40Z Lease support for linearizability tests : Updated as per review feedback. - - 2fcb05710 2023-01-12T15:17:34+01:00 tests: Move stopping proxy to after process stop to speed up cluster shutdown - - bff3d4a59 2023-01-12T10:17:54+01:00 tests: Fix putWithLease traffic timeout/limit and double overall timeout to reduce number of failed requests - - 7b2dfece7 2023-01-12T09:31:23+01:00 tests: Use watch events to patch history to speed up linearization - - ebf1e3bb1 2023-01-11T14:42:31+08:00 Bump go to 1.19.5 - - 5b84526e9 2023-01-11T05:19:57Z Add support for lease api to linearizability tests - - 8a9f848d3 2023-01-10T15:12:12+01:00 tests: Refactor how linearizability test components are run in parallel - - 6821e226d 2023-01-10T15:11:23+01:00 tests: Watch events during linearizability test and compare history - - 30fc7611e 2023-01-10T09:11:34+08:00 tidy up dependencies - - d10440803 2023-01-10T09:10:07+08:00 build(deps): bump golang.org/x/net from 0.4.0 to 0.5.0 in /server - - 9f9344850 2023-01-09T17:12:51Z build(deps): bump actions/checkout from 3.2.0 to 3.3.0 - - ad315b38f 2023-01-09T17:12:44Z build(deps): bump actions/upload-artifact from 3.1.1 to 3.1.2 - - deb429148 2023-01-09T17:29:38+01:00 tests: Trigger only failpoints available in binary - - 6877122dc 2023-01-09T14:42:25+01:00 tests: Rewrite etcd requests to use operations - - 064fad5ae 2023-01-09T14:18:07+01:00 tests: Implement network delay and blackholing in linearizability tests - - 8b15146f2 2023-01-09T18:01:32+09:00 clientv3: refactor getToken automatically - - 4c18ff667 2023-01-08T05:40:27+08:00 changelog: add 3.5 item to cover the fix for last partically synced WAL record - - 5ef713c72 2023-01-08T04:55:40+08:00 remove the dependency on the deprecated io/ioutil - - bd9f1584d 2023-01-08T04:46:51+08:00 process the scenaro of the last WAL record being partially synced to disk - - 49abfa599 2023-01-07T14:40:12+08:00 client/v3: fix comment typo - - 2c46b2b29 2023-01-04T19:01:07-08:00 externalize snapshot catchup entries to etcd flag - - bb86058fe 2023-01-01T19:54:16+01:00 tests: Test model describe method - - 007858dc9 2022-12-30T09:22:39+01:00 etcd-dump-logs: Migrate from zap to log for raw - - 8ec3cbc55 2022-12-30T09:22:39+01:00 fixup! Add --raw mode to ./etcd-dump-log - - d79bc3fa7 2022-12-30T09:22:39+01:00 etcd-dump-logs: Fix order of imports.. - - e571fb7ba 2022-12-30T09:22:34+01:00 Add --raw mode to ./etcd-dump-log - - 58681d3fe 2022-12-30T09:19:23+01:00 Expose types of entries within the WAL log for access from the tools. - - 0d8aad54b 2022-12-30T09:19:23+01:00 wal: Expose Decoder as package visible interface. - - bee2a0896 2022-12-30T09:19:23+01:00 wal decoding: Add optional mode to ignore CRC errors. - - 498619bdd 2022-12-30T09:19:23+01:00 wal decoder: report file & offset in case of CRC mismatch. - - 14a1bf1d2 2022-12-29T13:08:24+01:00 etcd-dump-logs: Make the tests work again. - - 9abc89512 2022-12-29T13:04:45+01:00 Goimports: Apply automated fixing to test files as well. - - d4c8611be 2022-12-29T10:02:21+01:00 tests: Add comments to linearizability functions - - 9e1abbab6 2022-12-29T09:41:31+01:00 Fix goimports in all existing files. Execution of ./scripts/fix.sh - - 4d0b91947 2022-12-29T14:17:05+08:00 chore: delete // +build buildtag by `go fix` - - 4e8761b20 2022-12-29T13:18:23+09:00 go fmt - - 0c67e318d 2022-12-29T13:18:23+09:00 enhancement(ctlv3): display as learner when member add as learner - - ff71f3436 2022-12-28T20:03:36+01:00 tests: Support multiple keys in linearizability tests - - 5a28a02b9 2022-12-28T16:37:55+01:00 ./scripts/fix.sh: Takes care of goimports across the whole project. - - 101a2a61e 2022-12-28T18:41:08+08:00 etcdserver: fix typo in comment - - a60db1192 2022-12-28T15:43:44+08:00 Added 'secrets.GITHUB_TOKEN' for the static-analysis workflow - - 0fcd828de 2022-12-26T17:18:42Z build(deps): bump ossf/scorecard-action from 2.1.0 to 2.1.2 - - b108fabf8 2022-12-24T21:26:57+01:00 tests: Reproduce issue 14685 - - 922bed1ae 2022-12-24T21:12:32+01:00 tests: Refactor etcd model - - f01cfda7c 2022-12-23T20:27:53+08:00 update nsswitch.conf file - - e06cff4d5 2022-12-23T19:26:17+08:00 update changelog to update base image to static-debian11 and removd dependency on busybox - - 27ca4d548 2022-12-23T17:28:24+08:00 remove the dependency on busybox - - f0153222f 2022-12-22T13:36:16+03:00 clientv3/naming/endpoints: fix endpoints prefix bug fixes bug with multiple endpoints with same prefix - - 16e1fff51 2022-12-21T14:36:51+08:00 changelog: update the release date of etcd v3.4.23 - - 2041d5f24 2022-12-20T21:54:52+09:00 fix: change error message - - 57413851b 2022-12-20T21:52:59+09:00 fix(client): change error message - - dc88d9076 2022-12-20T21:52:59+09:00 test: add TestIsUnavailableErr - - 77e4e87ee 2022-12-20T21:52:58+09:00 refactor: use assert - - a7da508ff 2022-12-19T22:23:11-08:00 tests/common: migrate auth tests #1 - - 39d96b255 2022-12-20T12:51:08+08:00 clientv3: add protection code to prevent SnapshotWithVersion from panicking - - 429f66e12 2022-12-20T09:28:23+08:00 build(deps): bump ossf/scorecard-action from 2.0.6 to 2.1.0 - - ef02c159f 2022-12-19T17:09:20Z build(deps): bump github/codeql-action from 2.1.36 to 2.1.37 - - 6f522f657 2022-12-19T17:03:52Z build(deps): bump github.com/mikefarah/yq/v4 in /tools/mod - - 8a75cfff6 2022-12-19T13:09:19+01:00 Improve memberList output consistency - - b7c155125 2022-12-19T18:41:30+08:00 changelog: update items to address the critical and high Vulnerabilities - - 8bd191ae9 2022-12-17T18:21:20+09:00 test(client): add credentials_test.go - - 3c582fecb 2022-12-16T11:11:35+03:00 clientv3/concurrency: add logger to session, add unit test - - e58c73cc1 2022-12-16T15:53:39+08:00 maintenance: add test to verify content of Snapshot - - a438794ab 2022-12-16T13:33:02+08:00 e2e: deflake TestCtlV3AuthGracefulDisable - - 2d4781140 2022-12-16T10:43:55+05:30 Move trivy scan workflow of specific versions to respective branches - - cfe56b3d8 2022-12-16T11:23:50+08:00 fix doc etcdd.io -> etcd.io - - 2ffa9e7c9 2022-12-16T10:09:04+09:00 tests(etcdserver): refactor - - 008df9490 2022-12-15T10:49:20-08:00 tests/common: migrate auth tests #1 - - 8dcfca009 2022-12-15T21:46:48+09:00 tests(etcdserver): add server_access_control_test.go - - 0e4877719 2022-12-15T02:22:12+08:00 changelog: added item to cover the rollback to fix 'auth invalid token and old revision errors in watch' - - a59276c17 2022-12-14T08:59:29+08:00 build(deps): bump actions/setup-go from 2.2.0 to 3.5.0 - - 17d1761fb 2022-12-14T00:19:18Z build(deps): bump github.com/alexkohler/nakedret in /tools/mod - - 042022390 2022-12-14T00:18:23Z build(deps): bump honnef.co/go/tools from 0.3.0 to 0.3.3 in /tools/mod - - c5d80b388 2022-12-13T22:32:23Z build(deps): bump github.com/anishathalye/porcupine in /tests - - c4f7ac28a 2022-12-14T04:32:18+08:00 deps: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.32.0 to 0.37.0 in /server - - 32840bae7 2022-12-14T04:27:04+08:00 deps: bump go.opentelemetry.io/otel from 1.7.0 to 1.11.2 - - 8f320bfa0 2022-12-14T04:19:10+08:00 deps: bump github.com/golang-jwt/jwt/v4 from 4.4.2 to 4.4.3 in /server - - 8b34906b1 2022-12-14T04:17:21+08:00 deps: bump github.com/mikefarah/yq/v4 from 4.24.2 to 4.30.5 in /tools/mod - - 684516818 2022-12-14T04:15:44+08:00 deps: bump github.com/google/addlicense from 1.0.0 to 1.1.0 in /tools/mod - - feeb703b0 2022-12-14T04:13:08+08:00 deps: bump gotest.tools/v3 from 3.1.0 to 3.4.0 in /tools/mod - - 40e85f6be 2022-12-14T04:09:35+08:00 deps: bump github.com/mgechev/revive from 1.2.1 to 1.2.4 in /tools/mod - - c51540bdd 2022-12-14T04:07:52+08:00 deps: bump google.golang.org/protobuf from 1.28.0 to 1.28.1 - - b96be4f1d 2022-12-14T04:03:53+08:00 deps: bump github.com/cheggaaa/pb/v3 from 3.0.8 to 3.1.0 in /etcdctl - - 2c192f420 2022-12-14T04:00:49+08:00 deps: bump go.uber.org/multierr from 1.8.0 to 1.9.0 in /server - - 642a45116 2022-12-14T03:53:44+08:00 deps: bump gotest.tools/gotestsum from 1.7.0 to 1.8.2 in /tools/mod - - 700ad0fdc 2022-12-14T03:46:14+08:00 deps: bump github.com/creack/pty from 1.1.11 to 1.1.18 in /pkg - - c2a7a5870 2022-12-14T03:42:11+08:00 deps: bump github.com/prometheus/client_golang from 1.12.2 to 1.14.0 - - bc41c0963 2022-12-14T03:38:55+08:00 deps: bump github.com/coreos/go-systemd/v22 from 22.3.2 to 22.5.0 - - 259a73d67 2022-12-14T03:33:24+08:00 deps: bump github.com/spf13/cobra from 1.4.0 to 1.6.1 - - 1a0af6fee 2022-12-14T03:33:24+08:00 deps: bump go.uber.org/zap from 1.21.0 to 1.24.0 - - f4d3fa91d 2022-12-13T12:42:51+05:30 Add `permissions: read-all` to the workflow - - 1d7d8a901 2022-12-13T14:38:32+08:00 dependabot: change schedule interval to weekly - - 941fe6b87 2022-12-13T11:34:57+05:30 Add newline at end of file - - 932cb95e3 2022-12-13T08:39:26+03:00 resolver: cleanup of deprecated grpc resolver target.Endpoint field target.Endpoint and some other fields are deprecated, URL field is suggested to use instead path is required to be stripped of "/" prefix for naming/resolver to work porperly - - ffd26d6a0 2022-12-13T03:36:57Z build(deps): bump actions/checkout from 2.5.0 to 3.2.0 - - 7a55adcfd 2022-12-13T03:36:52Z build(deps): bump actions/upload-artifact from 2.3.1 to 3.1.1 - - 0fabbebea 2022-12-13T03:36:49Z build(deps): bump golangci/golangci-lint-action from 3.3.0 to 3.3.1 - - f538e18f3 2022-12-13T10:44:35+08:00 security: add dependabot.yml - - d0e753ca8 2022-12-13T07:28:59+08:00 clientv3: define local variables errMsgGRPCInvalidAuthToken and errMsgGRPCAuthOldRevision to cache gRPC error messages - - 19dc0cb41 2022-12-13T06:05:02+08:00 client: enhance the function shouldRetryWatch and added unit test - - bf5c094f3 2022-12-12T16:23:13+08:00 secure the github workflow - - e30ced0d2 2022-12-12T12:33:13+05:30 etcd: add `trivy-nightly-scan` for etcd images - - 3c51c4241 2022-12-12T10:18:45+08:00 test: fix nil pointer panic in testMutexLock - - 5d78d6d4b 2022-12-12T09:35:03+08:00 release: support kick off release in current branch - - 1bb4c9558 2022-12-10T14:49:20+01:00 tests: Update gofail to v0.1.0 - - 808099dc2 2022-12-09T18:23:53+08:00 Pin govulncheck to v0.0.0-20221208180742-f2dca5ff4cc3 - - a8bc8ba28 2022-12-09T09:47:17+01:00 tests: Increase test timeout for nighly runs to match job timeout minus ten minutes - - 1ba246e1d 2022-12-09T08:54:48+08:00 bump golang.org/x/ to v0.4.0 - - dccc21bb6 2022-12-09T07:39:57+08:00 bump go 1.19.4 - - 26bf2f81f 2022-12-08T23:57:42+01:00 tests: Add Txn operation to linearizability tests - - 60200b37d 2022-12-08T10:01:43+01:00 tests: Refactor etcd model - - e99e37e15 2022-12-07T17:59:19-05:00 Update PSC members - - 7c9c1b6c1 2022-12-07T17:41:49+01:00 Create a nightly job for linearizability tests - - a92e06f13 2022-12-07T13:51:22Z fix: revoke write permissions from all workflows - - f59896c73 2022-12-07T17:54:52+08:00 chore: use Getter in WarnOfExpensiveReadOnlyTxnRequest - - 6adc81c66 2022-12-06T18:10:50Z fix: remove workflow dispatch used for testing - - 4bcf401b7 2022-12-06T18:03:50Z Squashed commit of the following: - - b44c2d9af 2022-12-06T19:26:56+08:00 changelog: add items for the nil pointer panic of readonly txn - - 5ff920202 2022-12-06T10:21:07+01:00 tests: Refactor append failed requests - - 619ca4f5c 2022-12-06T10:11:22+01:00 tests: Add comments explaning handling failed requests - - d8da98c49 2022-12-06T10:11:22+01:00 tests: Fix return time for failed requests globally - - 45fdc2bba 2022-12-06T10:11:22+01:00 tests: Extract history from client - - c5c2ea6aa 2022-12-06T10:11:22+01:00 tests: Enforce that revision doesn't skips without error - - fe6e42d41 2022-12-06T10:11:22+01:00 tests: Improve tests by expending on scenarios - - 1d31e5e95 2022-12-06T10:11:22+01:00 tests: Consider only latest failed request - - b922afc0a 2022-12-06T10:11:22+01:00 tests: Make etcdRequest and etcdResponse public to make it serializable - - 68fd863c8 2022-12-06T10:11:22+01:00 tests: Mark failed requests as timed out - - 6a68141db 2022-12-06T10:11:22+01:00 tests: Allow dynamic number of clients - - f2bc0823f 2022-12-06T09:08:36+01:00 tests: Make it explicit that we only suppurt panic failpoints - - 738ee3687 2022-12-06T09:08:36+01:00 tests: Allow failpoint requests to fail assuming that process exists within 1 second - - a5cfc089f 2022-12-06T09:08:36+01:00 tests: Refactor picking a member function - - daad3a215 2022-12-06T14:53:47+08:00 etcdserver: fix nil pointer panic for readonly txn - - 898c6e867 2022-12-05T15:15:31-08:00 changelog: added non mutating requests pass through quotaKVServer when NOSPACE in 3.7 - - 4f238837a 2022-12-05T15:36:16+08:00 Make sure shellcheck exist - - 5d32ea51e 2022-12-05T13:38:18+08:00 changelog: added item for the decoupling raft from etcd in 3.6 - - f7f547451 2022-12-04T21:11:12+08:00 test:fix typo - - 377dffd51 2022-12-03T18:44:57+05:30 docs: Update raft package to go.etcd.io/raft/v3 in modules SVG - - a573d8af6 2022-12-03T11:21:07+01:00 tests: Use golang count to repeat tests - - 7f70b8cf7 2022-12-03T11:21:07+01:00 tests: Separate retries count from failure trigger count - - df2d075e1 2022-12-03T11:21:07+01:00 tests: Sleep between failpoint failure - - 11711fc00 2022-12-03T11:21:07+01:00 tests: Recreate cluster for every failpoint trigger - - 56ca9efc5 2022-12-02T17:19:43+08:00 Remove raft from etcd - - 971e42d63 2022-12-02T15:43:48+08:00 Resolve build and test errors - - cc58edecf 2022-12-02T15:36:41+08:00 raft: add raft into the tools/mod - - b4709b20e 2022-12-02T14:30:32+08:00 cleanup top level go.mod and go.sum and Bill-of-materials.json - - 0775d36e5 2022-12-02T14:25:50+08:00 raftexample: update etcdserver to use the new raft module go.etcd.io/raft/v3 - - 8651478ce 2022-12-02T14:17:58+08:00 raft: mark etcd/raft deprecated, and suggest users to use the new go.etcd.io/raft/v3 module - - 394956ca4 2022-12-02T14:13:18+08:00 doc: cleanup etcd/raft in all documents - - b1cdf1698 2022-12-02T13:58:11+08:00 scripts: cleanup raft from all script files - - c2313de3e 2022-12-02T13:49:21+08:00 cleanup top level go.mod and go.sum files - - 5503a9484 2022-12-02T13:36:05+08:00 test: cleanup go.mod and go.sum files - - 7ce21519f 2022-12-02T13:32:47+08:00 test: update test to use the new raft module go.etcd.io/raft/v3 - - ff337cc99 2022-12-02T13:27:38+08:00 tools/etcd-dump-logs: generate go.mod and go.sum for the tool - - bb6e89276 2022-12-02T13:12:19+08:00 tools/etcd-dump-logs: update tool to use the new raft module go.etcd.io/raft/v3 - - f54752b97 2022-12-02T13:06:59+08:00 etcdutl: cleanup go.mod and go.sum files - - f5b5d12dd 2022-12-02T13:02:31+08:00 etcdutl: updated etcdutl to use the new raft module go.etcd.io/raft/v3 - - faff80a2b 2022-12-02T13:00:59+08:00 etcdserve: format the source code - - 87e1ca2b9 2022-12-02T12:59:23+08:00 etcdserver: cleanup go.mod and go.sum files - - e9aa275b3 2022-12-02T09:33:45+08:00 etcdserver: update etcdserver to use the new raft module go.etcd.io/raft/v3 - - ccf5d3c1a 2022-12-01T09:49:33-08:00 Cleanup comment - - eef1fb924 2022-12-01T09:49:22-08:00 Record delete request errors - - 6be22d84e 2022-12-01T09:39:26-08:00 Updated as per review feedback. - - de991a9f2 2022-12-01T09:39:26-08:00 linearizability tests - Add support for delete api - - 08dd8d2e0 2022-12-01T08:57:23+01:00 lease: increase renew timeout to 10s - - dadd7358f 2022-12-01T09:43:26+05:30 Makefile: Read GO_BUILD_FLAGS from env and prepend - - 0fd40769b 2022-11-30T10:17:22+01:00 lease: fix potential goroutine leak in lessor_test.go - - 3f86db5e5 2022-11-30T05:03:43+08:00 bump golang.org/x imports to address CVEs - - fae9435b6 2022-11-29T06:51:50+08:00 test: fix unit test Instability - - 686846ec6 2022-11-28T18:58:01+08:00 add more debug info for opening WAL files failure - - dd4d69ca9 2022-11-27T20:35:39+01:00 tests: Cleanup gofail - - cd9ade540 2022-11-27T22:10:06+08:00 client/pkg/transport: fix typo in _test.go - - 8a8866026 2022-11-27T22:06:11+08:00 client/pkg/transport: deflake TestWriteReadTimeoutListener - - d545d603e 2022-11-26T20:13:20+08:00 test: update both unit test and e2e/integration test for CompactHashCheck - - 6049af072 2022-11-26T19:35:38+08:00 etcdserver: intentionally set memberID as 0 when can't identify the corrupted member - - e95e82f0b 2022-11-26T19:35:38+08:00 etcdserver: added a summary for the CompactHashCheck method - - 85fc09d09 2022-11-26T19:35:38+08:00 etcdserver: resolve review comments in PR 14828 - - 7b19ee639 2022-11-26T19:35:38+08:00 test: add integration test to cover the multiple member corruption case - - a3197102e 2022-11-26T19:35:38+08:00 test: rollback the change in PR pull/14824 - - 8b98fee9c 2022-11-26T19:35:38+08:00 etcdserver: detect corrupted member based on quorum - - 72b9d1d31 2022-11-26T18:40:54+08:00 fix release pipeline failure - - 285e44378 2022-11-26T10:51:32+08:00 bump github.com/stretchr/testify from v1.7.2 to v1.8.1 - - 9a7f9609d 2022-11-25T18:59:49+08:00 etcdctl: changed 'revision' to 'hash_revision' in hashkv table output - - f2d765d24 2022-11-25T18:49:16+08:00 etcdctl: update the examples for endpoint hashkv command in readme - - cd15507c6 2022-11-25T18:49:16+08:00 test: enhance case TestEndpointHashKV to check both hash and hashRevision - - 3b50c60dd 2022-11-25T18:49:16+08:00 changelog: cover the change of adding `HashRevision` into HashKVResponse - - 48b821004 2022-11-25T18:49:16+08:00 etcdctl: display HashRevision for 127.0.0.1:2379, 1084519789 command - - 8e3b87b61 2022-11-25T16:28:38+08:00 changelog: add items for both 3.4 and 3.5 changelog to cover the case of removing memberid from corrupt alarm - - 0bc46ec92 2022-11-25T12:50:02+05:30 fix TestSignal test - - dbfe42bbd 2022-11-24T00:03:00+05:30 comments: fix comments as per goword in go _test pkg files - - 18463081a 2022-11-23T23:50:21+05:30 scripts: go_srcs_in_module to list test packages files - - 2feec4fe6 2022-11-23T23:05:42+05:30 comments: fix comments as per goword in go test files - - cc77eb101 2022-11-23T21:52:09+05:30 scripts: go_srcs_in_module to list go source + test files - - cf285ea3c 2022-11-23T22:16:22+08:00 bump grpc to v1.51.0 from v1.47.0 - - f656fa0f4 2022-11-23T19:13:43+11:00 add missing copyright headers - - b298c85a3 2022-11-23T00:32:10+08:00 tests: fix anti-pattern name in `NewEtcdProcessCluster` - - 0b30e83b1 2022-11-22T22:19:55+08:00 tests/integration: deflake Corruption cases - - 0721d2f25 2022-11-22T19:25:46+05:30 client: update comment for clarity - - 99e302e8e 2022-11-21T16:11:43+01:00 Update changelog for v3.5.6 release - - c26dabacb 2022-11-21T15:06:11+01:00 release: build with consistent paths - - ebfcaaed3 2022-11-19T01:51:06+08:00 test: fix the test failures in e2e/warning_logging_test.go - - de6b5797e 2022-11-18T19:41:31+08:00 feat: raft/log_unstable_test use testify packages in tests - - 8265e9fe5 2022-11-18T18:06:00+08:00 etcdserver: resolve the changelog comment - - 7e8ebf772 2022-11-18T18:06:00+08:00 server: added duplicate warning-unary-request-duration flag - - 150ea9d88 2022-11-18T15:19:18+08:00 tool: bump gofail version - - 0e65199e1 2022-11-17T13:10:01-08:00 .github: make govuln-check generic - - 993f3c094 2022-11-17T20:44:31+01:00 Fix priority/important label - - c3b6cbdb7 2022-11-17T19:07:04+03:00 all: goimports -w . - - 371179e29 2022-11-17T14:17:16+01:00 tests: Trigger raftBeforeLeaderSend - - eebfd1598 2022-11-17T10:59:22+01:00 Fix TestCtlV3Lock/Elect flakes - - bf3eea883 2022-11-17T10:48:14+01:00 tests: Allow creating client for EtcdProcess - - d726e9a18 2022-11-17T10:37:55+08:00 docs: fix max recv msg size description - - 9648a291f 2022-11-17T09:27:09+08:00 changelog: add items to cover the issue of refreshing token on CommonName based authentication - - 0c1901466 2022-11-16T18:34:34+08:00 test: add test case to cover the CommonName based authentication - - 585054e44 2022-11-16T18:31:53+08:00 test: add certificate with root CommonName - - f32ac6e06 2022-11-16T18:31:53+08:00 clientv3: do not refresh token when using TLS CommonName based authentication - - ebf41c2d4 2022-11-16T11:09:38+01:00 Avoid getting gofail/runtime when failpoints are disabled - - 7180267d5 2022-11-16T15:05:29+08:00 tests: refactor `EtcdProcessClusterConfig` with Functional Options Pattern - - 9406de003 2022-11-16T15:05:28+08:00 tests: refactor `EtcdProcessClusterConfig` with Functional Options Pattern - - 2c9c209eb 2022-11-15T22:11:23+03:00 all: Changing Printf and friends to Print if there is no formatting - - 8ae4420c4 2022-11-15T15:00:18+01:00 tests: Add compact failpoints - - f96957adb 2022-11-15T14:59:03+01:00 tests: Add compact failpoints - - 89bfa4b95 2022-11-15T13:30:44+01:00 Update CodeQL to v2 - - cf190fb5b 2022-11-15T16:36:56+08:00 test: apply backend failpoints into the linearizablity test - - cadf9de3f 2022-11-15T10:35:30+08:00 feat: raft/log_test se testify packages in tests - - 4f824336a 2022-11-15T08:09:05+08:00 etcdserver: add two failpoints for backend - - 006e747a4 2022-11-15T01:15:01+03:00 all: Change time unit - - 2fc1485f2 2022-11-14T23:14:10+01:00 tests: Make linearizability traffic extendable - - 95c520976 2022-11-15T01:02:24+03:00 client: Use func without format - - 855aa4f7a 2022-11-15T00:06:09+03:00 all: Use ReplaceAll instead of Replace with -1 pos - - ff6c93f63 2022-11-14T12:20:55+01:00 tests: Add revision to etcd linearizability model - - 5b163aa50 2022-11-14T11:19:41+01:00 Expect exit code enhancement - - c2f27a007 2022-11-14T17:58:18+08:00 tests/e2e: disable testShellCompletion if enable cov flag - - 2532ca84d 2022-11-14T11:11:48+08:00 test: add failpoints into linearizablity test for commitBeforePreCommitHook and commitAfterPreCommitHook - - 3f18816e7 2022-11-14T11:02:18+08:00 etcdserver: add gofail points before and after OnPreCommitUnsafe - - f77b8a735 2022-11-14T08:33:44+08:00 etcdserver: populate HashRevision when responding to leader or client's HashKV request - - 228f493c7 2022-11-14T08:33:44+08:00 rpc.proto: regenerate rpc.proto related files - - cd746de14 2022-11-14T08:33:44+08:00 rpc.proto: added a new field hash_revision into HashKVResponse - - 0ef5df11a 2022-11-13T23:05:16+01:00 raft: update changelog - - 68af01ca6 2022-11-13T23:05:16+01:00 raft: add MaxInflightBytes to Config - - 8c9c557d8 2022-11-13T23:05:16+01:00 raft: factor out payloadsSize helper - - 7bda0d777 2022-11-13T23:05:16+01:00 raft/tracker: add MaxInflightBytes to ProgressTracker - - bfb7b16f4 2022-11-13T23:05:16+01:00 raft/tracker: add byte size limit to Inflights type - - de97f6aa3 2022-11-13T22:34:47+01:00 raft: tidy up the unit tests some more - - 3510680c3 2022-11-14T03:07:51+08:00 tests: refactor `EtcdProcessClusterConfig` using Functional Options Pattern - - 1f4f70723 2022-11-13T23:38:57+08:00 feat: use testify packages in tests - - d5a6d2518 2022-11-13T13:36:21+01:00 tests: Optimize checking failed writes - - 71d45461f 2022-11-13T17:21:13+08:00 e2e: test DowngradeVersion with latest point release - - e8097fe03 2022-11-13T13:15:49+08:00 README: remove Tobias Grieger from the Emeritus Maintainers list - - caaeee292 2022-11-13T00:27:41+08:00 tests: refactor `EtcdProcessClusterConfig` with Functional Options Pattern - - 539a8410f 2022-11-11T13:58:09-05:00 raft: don't apply entries when applying snapshot - - 95c5fed3c 2022-11-11T13:57:40-05:00 raft: remove IsEmptySnap check from raftLog.hasPendingSnapshot - - 3711fde82 2022-11-11T13:21:20-05:00 raft: rename raftLog.nextEnts to raftLog.nextCommittedEnts - - dbc720461 2022-11-11T18:48:42+08:00 test: Create a subdirectory for each member when DataDirPath is specified - - 3d5f293f3 2022-11-11T17:40:20+08:00 changelog: add item for 3.5 to cover the revision inconsistency issue - - 44d8e732c 2022-11-11T12:08:50+03:00 client/v3: replace deprecated grpc.WithInsecure() - - 5a3ef953e 2022-11-11T10:57:15+08:00 etcdserver: call the OnPreCommitUnsafe in unsafeCommit - - 04caec596 2022-11-10T11:05:59+01:00 tests: Preserve data dir from failed linearizability tests - - 0ea6fa542 2022-11-10T03:31:31Z raft: clean up IsLocalMsg and IsResponseMsg logic - - e0beef683 2022-11-09T22:25:34-05:00 raft: delete unused Ready.containsUpdates method - - c18d79df3 2022-11-09T22:12:49-05:00 raft: clarify conditions in unstable.stableTo - - 0f9d7a4f9 2022-11-09T17:35:52Z raft: make Message.Snapshot nullable, halve struct size - - 0daf153b4 2022-11-09T10:41:07+01:00 Take binary version in Downgrade/Upgrade Test - - b32cd938b 2022-11-09T16:04:22+08:00 test: add mix versions sending snapshot test - - 080effc93 2022-11-09T16:04:22+08:00 test: enhance StartNewProc to accept one more parameter: EtcdProcessClusterConfig - - 765a2660b 2022-11-08T23:08:54Z raft/tracker: use testify packages in tests - - 1ea13494e 2022-11-08T22:21:39Z raft/tracker: rename and comment MsgApp paused field - - 467114ed8 2022-11-08T22:21:39Z raft/tracker: remove unused Inflights.FreeFirstOne - - 4969aa81a 2022-11-08T22:21:39Z raft: send empty appends when replication is paused - - 3bc3d2071 2022-11-08T22:21:38Z raft: extract Progress update on MsgApp to a method - - d5ac7b833 2022-11-08T22:21:38Z raft: cleanup maybeSendAppend method - - 5619953f3 2022-11-08T22:21:38Z raft: elaborate checks in flow control tests - - 0a0f0ae71 2022-11-08T22:21:38Z raft/rafttest: add test for replication pausing - - 269a0beb4 2022-11-09T03:37:42+08:00 tests: refactor `EtcdProcessClusterConfig` with Functional Options Pattern add `DefaultConfig`, `NewConfig` and `EPClusterOption` - - 5b8c6b548 2022-11-08T22:24:52+08:00 etcdclient: check mutex state in Unlock method of concurrency.Mutex - - 2a1055c7f 2022-11-08T13:56:46+01:00 raft: Remove dependency on etcd api - - 2ac149b96 2022-11-08T18:27:46+08:00 etcdserver: fix log typo when checking version compatiblity - - fe7da7959 2022-11-08T09:20:19+08:00 raft: remove the raft dependency on go.etcd.io/etcd/client/pkg/v3 - - a671e3ebd 2022-11-07T17:17:48+08:00 raft: change the log from debug to warning when uncommitted size exceeds max threshold - - 757cf33c0 2022-11-07T10:25:04+08:00 test: update e2e test cases to use e2e specfic configuration from e2e package - - 86e71f026 2022-11-07T10:18:51+08:00 test: update the definition of testRunner and clusterTestCases - - fc23d0e83 2022-11-07T10:05:45+08:00 test: add ClusterContext into the common ClusterConfig - - 71b40b3ab 2022-11-07T06:51:59+08:00 tests: Extend common test to run previous release - - 219278b29 2022-11-06T15:56:28+01:00 tests: Add triggering random go failpoints to linearizability tests - - cda14cd3f 2022-11-06T13:25:35+08:00 changelog: add item to cover the fix on adding protection on maintenance requests when auth is enabled - - c00ede393 2022-11-06T06:28:51+08:00 test: fix pipeline errors due to PRs conflict - - dc0273b04 2022-11-04T19:28:32+08:00 test: refactor the struct to make it clearer - - 99d5364e5 2022-11-03T14:53:02+01:00 (Re-) add @tbg as maintainer - - be686b1ba 2022-11-03T05:04:44+08:00 changelog: update 3.4.22's release date - - 74085136b 2022-11-03T04:55:27+08:00 etcdctl: connect to the same endpoint as the target to be maintained - - 7f46da223 2022-11-03T04:39:42+08:00 client: no need to getToken when dial specific endpoint for maintenance - - f78289124 2022-11-03T04:39:42+08:00 test: added auth test on maintenance API - - 1791ab575 2022-11-03T04:39:42+08:00 test: add common functions for auth test - - c967715d9 2022-11-03T04:39:42+08:00 auth: protect all maintainence APIs when auth is enabled - - 3ddcb3dde 2022-11-02T22:50:31+08:00 test: deflake TestDowngradeUpgradeClusterOf3 timeout - - 94e0c2410 2022-11-02T09:07:22+08:00 bump go version to 1.19.3 to address security fixes - - 580a86ebe 2022-10-31T20:29:15-04:00 server: add more context to panic message - - a774510a9 2022-10-31T21:23:48+08:00 address review - - e73a25a1d 2022-10-31T19:58:21+08:00 ci: ensure the generated code is up-to-date - - fa9ee5cce 2022-10-31T15:26:08+08:00 tests: TestRunner.NewCluster accepts options - - 378da24c7 2022-10-31T08:24:58+08:00 changelog: add item to cover the fix for double barrier running into stack overflow error - - d0f5f1ba2 2022-10-29T14:24:04+09:00 update changelogs of 3.4 and 3.5 for backporting PR 14574 and 14647 - - b7146f8f3 2022-10-29T12:54:34+09:00 server: add a unit test case for authStore.Reocver() with empty rangePermCache - - 0bc8895d7 2022-10-28T17:26:04-03:00 fix: upgrade scorecard github action to avoid crashes - - e0e8759bf 2022-10-28T12:24:57-05:00 remove inactive reviewers - - 514c8b2d5 2022-10-28T13:07:59-04:00 Move grpc-proxy item from 3.6 to 3.5 changelog - - 6f6275e1a 2022-10-28T20:56:45+08:00 chore: update the warn message on startup when the server name is default - - 680310a6c 2022-10-27T18:45:02-07:00 *: bump to go1.19.2 from 1.19.1 - - fbed8cb64 2022-10-27T15:05:05-07:00 etcdserver: call refreshRangePermCache on Recover() in AuthStore - - b22e3ff4e 2022-10-27T14:08:23-07:00 Allow passing client options to Client() - - 47c558e60 2022-10-27T02:02:58-07:00 [e2e] don't pass --endpoints flag in test HashKV implementation - - d75d1e575 2022-10-27T11:09:14+08:00 fix: close conn - - 5c0d65395 2022-10-26T17:25:35-07:00 .github: add govuln check - - 191fb306e 2022-10-27T08:23:22+08:00 fix: apply review suggestion - - e28b66f75 2022-10-26T23:41:09+08:00 tests: add a ClusterOption interface for ClusterSize in config.ClusterConfig - - d4fbfb8cf 2022-10-26T23:30:25+08:00 fix: add a warning message on startup if the server name is default - - f3c47d760 2022-10-26T09:56:22-04:00 update auth test interface - - 946d120c7 2022-10-26T17:32:00+08:00 etcd-dump-db: enhance metaDecoder - - 08284c56e 2022-10-26T15:47:19+08:00 test: fix anti-pattern naming problem in config.ClusterConfig - - 42cfb74b4 2022-10-26T14:30:47+08:00 test: define a default WithAuth to resolve error Unresolved reference 'WithAuth' from IDE - - 36cbd6aff 2022-10-25T17:15:11+08:00 test: terminate functional test on failure - - 3ee2f5711 2022-10-25T02:41:49+08:00 test: add common function "WithAuth" - - 837819860 2022-10-24T13:36:12+02:00 tests: Add linearizability tests scenario for #14370 - - 4e0ccc69c 2022-10-24T19:04:34+08:00 test: refactor the client interface - - 3a63a0d5e 2022-10-23T21:13:55+08:00 chore: commit the change generated by scripts/genproto.sh - - bbda80486 2022-10-23T13:46:10+01:00 Updating script for static analysis readiness. - - 37d62ba47 2022-10-23T13:46:10+01:00 Updating fuzzing script with list of target. - - b58f9c27e 2022-10-23T13:46:10+01:00 Refactoring code to remove duplicate code test. - - 3d9c5c616 2022-10-23T13:46:10+01:00 Adding fuzz test on v3rpc interfaces. - - 069e26e28 2022-10-23T06:41:38+02:00 tests: Validate etcd linearizability - - aac5feec9 2022-10-22T19:13:40+08:00 raft: remove duplicate letter in comment. - - 44bc00749 2022-10-21T10:44:09-07:00 Update tests/framework/e2e/etcdctl.go - - 24831a024 2022-10-21T10:44:09-07:00 Update tests/framework/e2e/etcdctl.go - - a39374f33 2022-10-20T19:15:31-04:00 [e2e] Fix AuthEnable/Disable e2e test implementations - - a466d5cc2 2022-10-20T17:37:16-04:00 [e2e] Fix bug in EtcdctlV3.HashKV() - - 62167d1f1 2022-10-20T16:24:20+08:00 clientv3: fix the design & implementation of double barrier - - bbda1daec 2022-10-20T10:35:30+08:00 functional_test: code cleanup and minor enhancements - - 1771cec23 2022-10-20T09:26:04+08:00 lessor: refactor expireExists to make it more clear - - 1b3f301cc 2022-10-17T14:10:11+02:00 tests: Share SpawnCmdWithLogger between coverage and no coverage scenarios - - 574b3d33d 2022-10-17T14:09:51+02:00 test: Remove BinDir global variable - - 9bba38e51 2022-10-17T14:09:51+02:00 tests: Include etcd-last-release in BinPath - - 0f9e15fc3 2022-10-17T14:09:51+02:00 test: Remove accessing etcd via BinDir - - 89a1e7978 2022-10-17T14:09:51+02:00 tests: Configure coverage binary paths via init - - d3b995112 2022-10-17T14:09:49+02:00 tests: Refactor BinPath into struct - - de0efc9aa 2022-10-17T14:09:28+02:00 tests: Move global e2e configuration into one file - - 24bd27691 2022-10-17T17:07:51+05:30 Version parameter for the doc link. - - 55df4e6ef 2022-10-17T17:07:51+05:30 etcdmain: Updates v3.5 supported platform docs - - 07ca38475 2022-10-17T13:37:14+02:00 tests: Move MustAbsPath function to testutils - - 2b178fdd9 2022-10-17T12:05:57+02:00 server: Handle cluster version equal downgrade version - - 2751ec647 2022-10-16T11:41:11+08:00 integration: check Watch response error not nil to avoid runtime panic. Fixes issue: #14259 - - 24ad49091 2022-10-15T06:09:58+08:00 test: resolve review comment for the feature of dynamically adding new member - - 11e23f1ef 2022-10-15T05:53:07+08:00 Added member interaction into EtcdProcessCluster - - 20dccfa48 2022-10-14T09:40:04+02:00 Test port allocating using net.Listen - - e913a55f1 2022-10-14T10:40:50+08:00 Update changelog readme to add rules on how to add changelog items - - fdce1b38f 2022-10-13T16:45:27+02:00 tests: Use bash like patterns in TestAuthority instead of string formating - - 81bd3fb9f 2022-10-13T16:44:22+02:00 tests: Pass only etcd related environment variables during e2e tests - - 8a587447d 2022-10-13T17:24:24+08:00 clientv3: fix errors init client RejectOldCluster - - 78380ae6b 2022-10-13T16:33:02+08:00 functional-test: move the check on log-outputs out of the 'if clientTLS' branch - - e4cfa07d0 2022-10-13T08:29:45+08:00 Update both 3.4 and 3.5 changelog to cover two fixes - - 5746d6eb8 2022-10-12T17:32:33+08:00 etcdserver: added more debug log for the purgeFile goroutine - - 5739c82be 2022-10-10T20:15:19+08:00 update changelogs of 3.4 and 3.5 for fixing avoid closing a watch with ID 0 incorrectly - - 0f4d6fbc5 2022-10-09T21:22:36+02:00 .github/workflows: Replace egrep with grep -E - - 328a33668 2022-10-09T09:23:13+08:00 functional_test: stop etcd and cleanup data when test is successful - - 428fb9623 2022-10-08T06:57:30+09:00 client/v3: Add backoff before retry when watch stream returns unavailable - - 510f26e34 2022-10-07T21:22:06+02:00 Remove mention of ETCDCTL_API environment variable as it was removed on main branch - - 419ee8a9c 2022-10-06T20:25:07-04:00 raft: panic on self-addressed messages - - b15f6bf97 2022-10-06T11:03:51+08:00 integration: deflaking TestMaintenanceSnapshotCancel/Timeout - - ad4e25617 2022-10-05T22:56:40+08:00 Update changelog 3.6 to clearly requiring applications which depend on etcd 3.6 packages must be built with go version >= 1.18 - - b13b19871 2022-10-05T08:12:54+09:00 update changelogs of 3.4 and 3.5 for handling auth invalid token and old revision errors in watch - - c50e72851 2022-10-03T02:11:56-04:00 raft: simplify auto-leave joint config on entry application logic - - 8d057ea2b 2022-09-29T23:09:32-07:00 common tests framework: cluster client creation fail with invalid auth - - 1ccdb3762 2022-09-30T06:06:41+08:00 Test: fix all corruption detection related unit test cases - - d116d02e0 2022-09-30T06:03:50+08:00 etcdserver: update corrupt hash detection's logic - - bd3438872 2022-09-29T12:33:20-04:00 raft: broadcast MsgApp on auto-leave joint config proposal - - 9a0363204 2022-09-29T12:33:04-04:00 raft: update prevHardSt on Ready accept, not advance - - 7020e2fd2 2022-09-29T13:57:55+08:00 fix lint - - ae118a17f 2022-09-29T13:55:47+08:00 fix goimorts local-prefixes - - 0a08fa2b4 2022-09-29T11:30:04+08:00 golangci: add import order check - - 93b9dc658 2022-09-28T19:13:58+08:00 golangci: add unconvert check - - ea17d9d6b 2022-09-28T11:05:53+08:00 update changelog-3.4 to cover the issue: memberID equals zero in corruption alarm - - 319db38b0 2022-09-27T14:33:02+08:00 update: add benchmark test benchmark result: (1) master branch $ go test -bench='BenchmarkIndexPut$' -count=5 goos: darwin goarch: amd64 pkg: go.etcd.io/etcd/server/v3/storage/mvcc cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz BenchmarkIndexPut-12 1000000 2591 ns/op BenchmarkIndexPut-12 1000000 2531 ns/op BenchmarkIndexPut-12 1000000 2536 ns/op BenchmarkIndexPut-12 1000000 2546 ns/op BenchmarkIndexPut-12 1000000 2538 ns/op PASS ok go.etcd.io/etcd/server/v3/storage/mvcc 167.439s - - c53dfc7c5 2022-09-27T10:16:15+08:00 upate:use google/btree in the genric way - - f6d808736 2022-09-26T23:21:10+08:00 membership: Remove PickPeerURL Method - - f1d4935e9 2022-09-26T20:30:33+08:00 *: avoid closing a watch with ID 0 incorrectly - - cc1e24536 2022-09-24T22:20:26+10:00 etcdserver: fix corruption check when server has just been compacted - - c6dd01f33 2022-09-23T13:59:17-03:00 add scorecard badge to README file - - 336bae2d4 2022-09-23T13:57:22-03:00 github: enable the scorecard github action - - 570276572 2022-09-22T19:23:06+08:00 wal: Fix the `walWriteBytes` metric - - 9097e61b4 2022-09-22T15:19:20+08:00 etcdserve: revert the etcdserver side change for the data loss on one node cluster - - da7e64047 2022-09-22T15:07:52+08:00 Update changelog-3.6 to reflect the bumping of go 1.19 - - dd7d30017 2022-09-22T08:47:46+08:00 Bump go 1.19: revert the change to pkg/adt/interval_tree.go - - 7f10dccba 2022-09-22T08:47:46+08:00 Bump go 1.19: update all the dependencies and go.sum files - - cb5f7276c 2022-09-22T08:47:46+08:00 Bump go 1.19: upgrade go version to 1.19.1 in the pipeline - - cd0b1d0c6 2022-09-22T08:47:46+08:00 Bump go 1.19: upgrade go version to 1.19 in all go.mod files - - bea478266 2022-09-20T13:58:17+02:00 makefile: Raname targets update* to fix* to distinquish from update_dep - - 5bfda8083 2022-09-20T13:57:59+02:00 makefile: test the update target - - bb139b15f 2022-09-20T13:55:51+02:00 makefile: Don't run update_dep.sh as it's not a check - - 05104ee9a 2022-09-20T13:55:51+02:00 makefile: Remove verify-revive as it is already run by golangci - - f67ec1077 2022-09-20T18:41:39+08:00 etcd: format import order - - d56676c9b 2022-09-20T09:01:42+02:00 raft: benchmark results for ./benchmark put - - 9ad36eeca 2022-09-20T09:01:42+02:00 fixup! address comments - - 304e26003 2022-09-20T09:01:42+02:00 raft: benchmark results - - 3c3e30a30 2022-09-20T09:01:42+02:00 Revert "raft: directly update leader in advance" - - 67c352289 2022-09-20T09:01:42+02:00 raft: directly update leader in advance - - 894e5cb68 2022-09-20T09:01:42+02:00 move ctx param to the front - - f62b9d5e1 2022-09-20T09:01:40+02:00 remove TestNodeReadIndex - - f7dcb9ec2 2022-09-20T08:59:37+02:00 TestInteraction - - f7b0a6ad3 2022-09-20T08:59:37+02:00 TestRawNodeBoundedLogGrowthWithPartition - - 02efe5135 2022-09-20T08:59:37+02:00 TestRawNodeStart - - 79bf3b0df 2022-09-20T08:59:37+02:00 TestRawNodeJointAutoLeave - - fbe4d4008 2022-09-20T08:59:37+02:00 TestLeaderTransferIgnoreProposal - - 182e1a371 2022-09-20T08:59:37+02:00 TestReadOnlyWithLearner - - b462fd15c 2022-09-20T08:59:37+02:00 TestMsgAppRespWaitReset - - ff837f3a0 2022-09-20T08:59:37+02:00 TestProposal - - 15abe294e 2022-09-20T08:59:37+02:00 TestDueling{Pre,}Candidates - - d6f3e88a5 2022-09-20T08:59:37+02:00 TestSingleNodeCommit - - 99adcaa29 2022-09-20T08:59:37+02:00 TestLearnerLogReplication - - 7060d7552 2022-09-20T08:59:37+02:00 TestLeaderOnlyCommitsLogFromCurrentTerm - - 9ff144ef7 2022-09-20T08:59:37+02:00 TestProgressLeader - - bd46776f0 2022-09-20T08:59:37+02:00 Commit + apply all in nextEnts - - f10579d3b 2022-09-20T08:59:37+02:00 TestLeaderAcknowledgeCommit - - b2dba1c86 2022-09-20T08:59:37+02:00 TestNodeAdvance - - 0d9a6061c 2022-09-20T08:59:37+02:00 TestNodeReadIndex - - 14a76d755 2022-09-20T08:59:37+02:00 TestNodeStart - - 873cdf3fa 2022-09-20T08:59:37+02:00 TestNodeProposeWaitDropped - - 1a81b27be 2022-09-20T08:59:37+02:00 TestNodePropose{,Config} - - 87a9b80d7 2022-09-20T08:59:37+02:00 TestNodeProposeAddDuplicateNode - - 931fec3b6 2022-09-20T08:59:37+02:00 TestCommitPagination - - 1f39a8fe7 2022-09-20T08:59:37+02:00 raft: teach readyWithTimeout to log received `Ready`s - - 36860f863 2022-09-20T08:59:37+02:00 TestLeaderAcknowledgeCommit - - dad8208a4 2022-09-20T08:59:37+02:00 raft: avoid panics during *node tests - - 169f4c3cc 2022-09-20T08:59:37+02:00 raft: don't emit unstable CommittedEntries - - 21be9fa33 2022-09-20T08:59:37+02:00 raft: add single_node InteractionEnv test case - - 5e3314da4 2022-09-20T08:59:37+02:00 raft: add BenchmarkRawNode - - 3ad363d07 2022-09-20T08:59:37+02:00 raft: always mark leader as RecentActive - - a9c3d5650 2022-09-20T11:26:02+08:00 etcd: remove redundant type conversion - - 16884373b 2022-09-20T11:03:51+08:00 e2e: submitConcurrentWatch runs with ExecuteWithTimeout - - ec847337d 2022-09-20T10:41:59+08:00 e2e: make maxstream test stable - - 7ea2a3d7c 2022-09-19T16:01:45-07:00 *: Update golang.org/x/net to latest - - 09db6ec1d 2022-09-20T04:06:47+08:00 etcd: Bump golang-jwt/jwt/ version to 4.4.2 - - 9f27d459b 2022-09-19T11:13:14-04:00 Doc: Add feature graduation and deprecation policies - - d657f2f66 2022-09-18T04:26:30+08:00 Test: increase the TestKVDelete's timeout to 15s - - 536743042 2022-09-18T04:19:40+08:00 Build: remove the invalid quote character ' for flag -ldflags - - 4f907e950 2022-09-18T04:04:35+08:00 CI: remove hardcode go version in .golangci.yaml - - c5614520d 2022-09-17T21:51:36+09:00 tests: a test case for watch with auth token expiration - - 2dcfa8309 2022-09-17T21:51:36+09:00 *: handle auth invalid token and old revision errors in watch - - b8347edf3 2022-09-16T22:37:10+02:00 makefile: Split fmt into separate verify commands - - fe24de857 2022-09-16T19:18:42+08:00 Changelog: cleanup 3.6 changelog to remove all bug fixes - - f655f667f 2022-09-16T12:04:54+02:00 Update changelog for v3.5.5 release - - 5b26fc010 2022-09-16T17:08:29+08:00 fix test - - 72cf0cc04 2022-09-16T14:41:14+08:00 etcd: modify declaring empty slices - - a281bb049 2022-09-16T14:39:14+08:00 pkg: replace the deprecated Expect with ExpectWithContext in pkg/expect/expect_test.go - - c4582aaae 2022-09-16T11:45:43+08:00 remove redundant log messages - - c31d75818 2022-09-15T10:55:32-07:00 functional: remove SIGQUIT_ETCD_AND_REMOVE_DATA_AND_STOP_AGENT command - - 54bd10580 2022-09-15T16:15:25+02:00 really fix measure-test-flakiness - - e270967ab 2022-09-15T16:00:53+02:00 Fix measuring test flakiness - - 7bb114d17 2022-09-15T11:54:14+02:00 makefile: Make static analysis commands easier to use - - 102ec3ccd 2022-09-15T15:51:19+08:00 Changelog: correct the 3.4 changelog item - - 3e4715e3a 2022-09-15T09:31:25+08:00 Changelog: Update changelog for 3.4.21 - - 35801ddf0 2022-09-14T17:53:55-04:00 Add an initial features doc - - 3b585e94f 2022-09-14T23:36:54+08:00 mvcc: Remove unused revisions and change comment rev to modified - - 4a6afdd2e 2022-09-14T15:53:14+08:00 changelog: update the recommended version to 3.5.4+ - - a36bcfff1 2022-09-14T09:39:32+02:00 Improve contributor guidelines and simplify development commands - - e8ad00806 2022-09-14T14:30:37+08:00 integration_test: fix the flaky test TestV3AuthRestartMembe - - 481f73c06 2022-09-13T17:19:13+02:00 github: Improve issue templates to speed up issue triage - - 157ee32da 2022-09-13T15:22:45+02:00 test: Clean incorrectly used StopSignal field from expect - - 47d460b8d 2022-09-13T17:11:36+08:00 add verification on nil log - - 5a315ef88 2022-09-13T16:35:31+08:00 add a verification on the pagebytes which must be > 0 - - 1038c2f45 2022-09-13T09:20:35+02:00 tests: Extract expect configuration into struct - - 959ef2062 2022-09-12T14:12:55-04:00 Update CHANGELOG/CHANGELOG-3.6.md - - d38132e36 2022-09-10T16:46:00-04:00 Add features dev and support policy doc - - 01f2de662 2022-09-09T16:43:48+08:00 updated changelog to cover the two issues: 1. authentication data not loaded on member startup 2. etcdctl move-leader may fail for multiple endpoints - - 3fc16608f 2022-09-09T10:38:13+02:00 etcdctl: fix move-leader for multiple endpoints - - 6a5dd09fe 2022-09-09T15:09:10+08:00 tests: Migrate member remove tests to common framework - - 0315b317d 2022-09-08T09:23:54+02:00 Document compact-hash-check flags in changelog - - a4f140c9f 2022-09-07T21:30:16+03:00 testing: fix TestOpenWithMaxIndex cleanup - - e78261941 2022-09-07T11:15:10-04:00 Add features dev and support policy doc - - 0eb642c4d 2022-09-06T18:48:51+03:00 Mockserver can handle requests to the leases API - - 57206f9df 2022-09-06T11:26:31-04:00 shutdown tracer provider first - - 92ddc940c 2022-09-06T12:56:42+08:00 Update changelog to cover some PRs - - fcc076fb7 2022-09-06T11:02:54+08:00 tests: Migrate member add tests to common framework - - ed0730c02 2022-09-06T05:19:45+08:00 update changelog for 3.4, 3.5 and 3.6 for the potential data loss in one-node cluster - - cc840336f 2022-09-05T10:05:55+08:00 move consistent_index forward when executing alarmList operation - - 3f3149b15 2022-09-03T15:56:51+08:00 tests: fix failed integration test cases after enabling `--strict-reconfig-check` by default - - d8ddb2dc5 2022-09-03T10:34:19+08:00 Procfiles: Update Goreman Installation Command - - 3beb25489 2022-08-31T22:21:23+08:00 tests: enable `--strict-reconfig-check` by default and expose it to common framework - - 858afba44 2022-08-30T20:00:26+08:00 chore: remove duplicate word in comments - - 2a10049e4 2022-08-30T15:29:20+08:00 fix the potential data loss for clusters with only one member - - e1c5d2a9a 2022-08-30T13:15:04+08:00 fix test code compiling error due to not enough arguments in call to node0.Restart - - fdf22b241 2022-08-29T13:37:23+08:00 add the missing parameter 'name' into SpawnCmdWithLogger for cov test - - 66d37aaf1 2022-08-27T14:06:11-04:00 Setup golangci-lint GitHub action. - - f8b65d53b 2022-08-27T13:41:14-04:00 Add revive to the list of linters. - - 08a9d1da0 2022-08-27T13:39:48+08:00 chore: remove duplicate word in comments - - e15bdd9df 2022-08-26T18:06:50+10:00 etcdmain: Honour ExperimentalWaitClusterReadyTimeout in startEtcd - - 70de5c893 2022-08-26T08:08:17+02:00 tests: Add context to e2e cluster start - - 17b83ea81 2022-08-26T13:53:33+08:00 Cleanup some e2e test configurations - - 46fe4b8e1 2022-08-26T07:12:47+02:00 tests: Rename common client lease methods to match - - b7272df69 2022-08-26T07:12:47+02:00 tests: Remove dummy client implementations - - 72bec6fbc 2022-08-26T07:12:45+02:00 tests: Add context to common client interface - - b39506b4e 2022-08-26T09:32:20+05:30 Update README.md - - be58a2539 2022-08-25T15:33:38+03:00 Added client-auto-sync-interval argument to the grpc-proxy - - 3196c2cb5 2022-08-25T13:30:55+08:00 Cleanup the go.mod for etcdctl - - e3787ef70 2022-08-24T15:52:05-04:00 Remove IRC ref - - 71c5360f9 2022-08-24T16:46:24+03:00 Fixed infinite loop in ExpectProcess.ExpectFunc - - e1e92e9c0 2022-08-24T13:56:45+02:00 Add ErrTimeoutDueToLeaderFail as expected error - - ae608da7e 2022-08-23T20:11:47-07:00 server,test: refresh cache on each NewAuthStore - - a5515171c 2022-08-24T09:15:34+08:00 Reduce redundant code and memory allocation. - - 91e76eccd 2022-08-23T14:35:32-04:00 Documentation: Update Broken Links - - 0785ef493 2022-08-23T11:50:56+02:00 Move inactive maintainers to emeritus - - f6ed36372 2022-08-22T21:55:57+08:00 tests: Migrate watch test to common framework - - 93be38856 2022-08-21T13:06:56+08:00 Update changelog-3.5 to cover the change for refactoring the keepAliveListener and keepAliveConn - - 1869fa9db 2022-08-19T11:31:52-04:00 have the tracingExporter to own resources it initializes - - d8ee37641 2022-08-18T17:15:39+08:00 Cleanup all etcd-agent and etcd processes when the test finishes - - 295044fba 2022-08-17T18:02:13-07:00 clientv3: close streams after use in lessor keepAliveOnce method - - 74506738b 2022-08-18T04:24:05+08:00 Refactor the keepAliveListener and keepAliveConn - - 2f51d3d9b 2022-08-18T04:18:11+08:00 improve the performance of starting functional test - - 76a5902ef 2022-08-17T10:56:27-04:00 server/etcdmain: add configurable cipher list to gRPC proxy listener - - 508ce517e 2022-08-17T09:25:37+08:00 update according to the review - - bebefd8b8 2022-08-16T11:33:01+08:00 chore: log when an invalid watch request is received - - ea2f299ba 2022-08-15T11:19:10-04:00 embed: add integration test for distributed tracing - - bba4eb4d8 2022-08-15T16:59:39+08:00 Improve functional test code - - 7cc3f5f97 2022-08-15T13:38:32+08:00 etcdctl: add --max-txn-ops flag to make-mirror command - - 0b9f43410 2022-08-14T18:49:46+08:00 tests: e2e and integration share TickDuration constant - - a5409c62e 2022-08-11T12:46:40+08:00 tests: add WaitLeader function to common framework - - d4778e78c 2022-08-10T18:00:06-07:00 more logging around auto sync - - ccd4efc3b 2022-08-10T14:51:25-07:00 logging RoleGrantPermission key and range end - - 658d570b0 2022-08-10T16:24:29+08:00 change flag name in changelog-3.6 - - 6a04f7fbd 2022-08-10T16:10:05+08:00 With go-grpc-middleware, add grpc_zap to logging grpc request and response content in grpc-proxy mode In our test environment, it may be very useful to debug who delete etcd's key with grpc-proxy mode - - 292d03b28 2022-08-10T13:00:06+08:00 add .DS_Store into .gitignore - - 43bb9d5c2 2022-08-09T00:46:50-07:00 server: don't panic in readonly serializable txn - - 8e1e118fe 2022-08-08T16:24:12+08:00 clientv3: fix --insecure-skip-tls-verify not working when not specify --cert-path and --key-path - - c9578c41d 2022-08-05T20:26:13-04:00 CHANGELOG: update version recommendation - - bc206bc86 2022-08-06T06:15:48+08:00 bump OpenTelemetry to 1.0.1 and gRPC to 1.41.0 - - b12490497 2022-08-06T05:46:51+08:00 update the release date for 3.4.20 - - 4c1376788 2022-08-03T09:33:02+08:00 etcdserver: add alarms metrics for server - - 3dd7d3f9a 2022-08-03T05:37:30+08:00 enhance the WAL file related error - - 6cded3d94 2022-08-02T23:22:55+02:00 Fixed goroutine leak in server/etcdserver/raft_test.go - - 7fa88fb8f 2022-08-03T03:10:45+08:00 tests: fix status responses size and nil - - 51933a7c8 2022-08-01T15:57:16+02:00 Add test name to e2e cluster members - - 2c8983460 2022-07-31T23:28:26+02:00 Fixed goroutine leak in tests/integration/v3_watch_restore_test.go - - cbfddfe63 2022-07-31T23:09:50+02:00 Fixed goroutine leak in tests/integration/clientv3/watch_test.go - - 3a775201c 2022-07-31T22:19:59+02:00 Fixed goroutine leak - - 3cdc4225e 2022-07-28T17:55:22-07:00 Followup to "Add golangci-lint config file" - - a7a48168a 2022-07-28T17:55:08-07:00 Add golangci-lint config file and `make` target. - - ff56da774 2022-07-28T18:23:17-04:00 rafthttp: test transport multiple transport removes - - eb5936844 2022-07-28T14:38:44+02:00 Reduce ExpectFunc polling interval. Fixes issue 14275, flakes close to timeout like TestKVDelete. - - 0535742a1 2022-07-27T09:50:10-07:00 Transition my maintainer status to emeritus - - baf777fa6 2022-07-27T15:08:05+02:00 Apply @spzala feedback - - 13d20f8d2 2022-07-26T23:28:19+08:00 tests: Migrate member list tests to common framework - - c26d7f538 2022-07-26T22:07:22+08:00 fix: code cleanup - - bb7e4653c 2022-07-26T15:55:22+02:00 tests: Fix member id in CORRUPT alarm - - cfa3b5b95 2022-07-26T16:38:00+08:00 Update changelog for 3.4.20 - - 188ea5424 2022-07-26T10:35:35+02:00 Add process to remove maintainers that don't fulfill their duties - - d44bbff27 2022-07-26T09:31:15+02:00 server: Make corrtuption check optional and period configurable - - 6697fca97 2022-07-26T09:31:14+02:00 server: Implement compaction hash checking - - f3bd53574 2022-07-25T23:20:21+08:00 server/etcdserver: fix test - - b77f56ac2 2022-07-25T23:16:02+08:00 tests: fix the logic of testNonleaderElectionTimeoutRandomized in raft_paper_test.go - - f0f750f4c 2022-07-25T13:59:31+02:00 tests: Cover periodic check in tests - - c58ec9fe1 2022-07-25T13:59:30+02:00 server: Refactor compaction checker - - 264498258 2022-07-25T13:59:30+02:00 tests: Move CorruptBBolt to testutil - - 99b982e71 2022-07-25T13:28:30+02:00 tests: Rename corruptHash to CorruptBBolt - - 97222a527 2022-07-24T23:34:05+09:00 update changelog-3.4 to protection for rangePermCache with a RW lock - - 2b0596f85 2022-07-23T08:49:07+08:00 server/etcdserver: check if raftNode has been stopped - - 118ab24b3 2022-07-22T12:14:37+02:00 update contrib/lock example - - 37b920e9f 2022-07-21T12:54:29+08:00 delete unreachable code - - f6cfd465c 2022-07-21T08:20:52+08:00 No need to manually remove tmp directory created by t.TempDir() - - 790a461c1 2022-07-20T19:37:27-04:00 readme: remove broken roadmap link - - 75d7bd015 2022-07-20T06:11:13+02:00 etcd-mixin: fix etcdDatabaseQuotaLowSpace alert name - - 0d0fc573b 2022-07-19T18:10:19+02:00 etcd-mixin:use-last_over_time-with-etcdBackendQuotaLowSpace-alert - - 7de89e8db 2022-07-19T18:03:08+02:00 etcd-mixin:add etcdBackendHighFragmentationRatio alert - - 874561448 2022-07-18T00:22:01+09:00 update changelog-3.5 to protection for rangePermCache with a RW lock - - 5cae1a1c4 2022-07-16T07:21:13+08:00 Print clusterID, memberID and leaseID in hexdecimal - - 508fa22a9 2022-07-15T11:33:11+08:00 benchmark: Fix the panic when running `benchmark watch` - - ac3f913da 2022-07-13T18:55:51+02:00 Improve error message for incorrect values of ETCD_CLIENT_DEBUG - - 575a901c0 2022-07-13T14:58:29+08:00 update both 3.5 and 3.6 changelog to cover the new flag --max-concurrent-streams - - 25ad3cffe 2022-07-12T12:26:09+02:00 Make Benjamin an official v3.4 release manager - - d3a96f348 2022-07-12T16:59:07+08:00 update v3.4.19 release date - - 39486c428 2022-07-11T13:51:57+08:00 update goreman installation command in local_cluster.md - - 7400d6c36 2022-07-11T10:31:51+08:00 Update scripts/release.sh to remove message related to travis.yml - - e3fd58df4 2022-07-10T11:21:15+02:00 clientv3: Fix parsing of ETCD_CLIENT_DEBUG - - 91f8eb1bd 2022-07-08T16:16:54+02:00 fix:etcd-mixin:use-predictLinear-insteadof-increase - - 1914e425b 2022-07-08T14:06:02+08:00 update 3.4 changelog to prepare for the release of 3.4.19 - - c4e89b418 2022-07-08T09:48:13+08:00 Fix syntax errors in comments - - e586dc19d 2022-07-07T16:25:26+08:00 lease: Rename `Poll` to `Peek` in the `LeaseExpiredNotifier` - - 8b6c8b4c9 2022-07-07T04:52:28+08:00 add unit test for pkg/flags/Uint32FromFlag in uint32_test.go - - 1a6fe4dbc 2022-07-07T04:51:20+08:00 update the comment for MaxConcurrentStreams to clearly state it's the max value for each client. - - f40b67670 2022-07-06T03:43:46+08:00 add e2e test cases to cover the maxConcurrentStreams - - 053ba95ed 2022-07-06T03:43:46+08:00 set max concurrent streams to the http2 server - - d8347ec68 2022-07-06T03:43:46+08:00 add & refine the uint32Value data type - - 622017468 2022-07-06T03:43:46+08:00 support custom `grpc.MaxConcurrentStreams` - - 231bee6fe 2022-07-05T16:03:45+08:00 fix a typo in etcdctl readme for the elect command - - 66f15f8ef 2022-07-04T11:02:08+08:00 ectdctl: Handle the repeat error message when the unknown command error occurs - - de09174a3 2022-07-02T23:23:13+09:00 server/auth: protect rangePermCache with a RW lock - - ae9ca48a3 2022-06-30T10:26:36+08:00 remove duplicate certificate configuration for proxy test - - 8637c54bc 2022-06-29T17:52:05-04:00 Client: fix check for WithPrefix op - - 107b7c06a 2022-06-28T19:35:33+08:00 sanp: Delete the nil judgment of the log object - - 756d77663 2022-06-26T12:13:20+02:00 removes empty option in JSON tag - - f220bfe1e 2022-06-26T11:44:11+02:00 fix #14162 - - e2bff7cfe 2022-06-26T16:39:30+08:00 pkg/expect: send SIGTERM to target expect process instead of SIGKILL - - 0887d9acf 2022-06-25T10:09:05Z fix #14161 - - a6bbf7c10 2022-06-25T10:15:03+08:00 proxy: Put the pb object into the struct - - 899bcc8fe 2022-06-24T17:46:51+08:00 update 3.4 change log to cover fixes for two issues - - 2a1b7fdb5 2022-06-24T16:58:18+08:00 verify: Get backend using simple api - - 8e8017388 2022-06-24T14:57:05+08:00 sync-changelog: /health break change was reverted - - 1dcd75f8a 2022-06-23T19:41:30+08:00 config: Add the default case when failing to parse the log rotate config json - - 685435ba3 2022-06-22T10:08:46+08:00 Update 3.4 change log item for 3.4.19 - - 428d21f5e 2022-06-21T11:41:44+08:00 mvcc:add ut for Revisions/CountRevisions and remove RangeSince as it is not used - - 89637a422 2022-06-20T15:47:23+02:00 Tools/benchmark: migrate cheggaaa/pb.v1 to cheggaaa/pb/v3 - - 449ff7b8c 2022-06-18T07:11:50+08:00 update changelog for both 3.5 and 3.6 to cover the authBundle overwrite issue - - e1e3ed11e 2022-06-17T13:13:58-03:00 Doc: provide more clarify to the usage of check perf command - - 88cd0fe69 2022-06-17T10:23:03+02:00 Refresh minor dependencies. - - e7a84b69c 2022-06-17T10:05:25+02:00 Update zap to 1.21. - - cbf54a042 2022-06-17T08:57:23+02:00 Use proper grpc schema (unix:file) for unix sockets. - - 17c1dcd61 2022-06-17T08:57:22+02:00 Update grpc to 1.47 and go-cmp to 0.5.8. - - fa68664a2 2022-06-17T10:17:02+08:00 update 3.5 and 3.6 changelog to cover the fix of restricting the max size of each WAL entry to remaining size of the WAL file - - 8038e876d 2022-06-17T10:11:30+08:00 replace ioutil with os package - - ccf477d12 2022-06-17T05:41:49+08:00 restrict the max size of each WAL entry to the remaining size of the file - - e5a80f504 2022-06-16T16:35:06+08:00 fix: typo gouroutine - - d23917c57 2022-06-16T15:32:16+08:00 Add FileReader and FileBufReader utilities - - 637afd359 2022-06-15T23:19:12+08:00 Fix a syntax error in a code comment - - d83925e35 2022-06-15T20:58:17+08:00 schedule: Provide logs when the fifo job panic happens - - 1c401581e 2022-06-15T13:50:17+02:00 Close channel of started servers even if embed server fails to start. - - fcc8fce4d 2022-06-15T13:50:17+02:00 Expand logging in case of embed server not being able to successfully start. - - f9e9f50a1 2022-06-15T13:14:08+02:00 Extend .gitignore to ignore intelij config/generated files. - - 402188a98 2022-06-14T17:26:20+08:00 wal: remove the repeated test case - - 9612fc119 2022-06-13T18:20:19+02:00 tests: Unify TestCompactionHash and extend it to also Delete keys and Defrag - - f5eadf545 2022-06-13T18:20:19+02:00 tests: Add tests for HashByRev HTTP API - - 1581eef88 2022-06-13T18:20:19+02:00 tests: Add integration tests for compact hash - - 0e739da9a 2022-06-13T18:20:18+02:00 server: Cache compaction hash for HashByRev API - - 2b090e86a 2022-06-13T18:20:18+02:00 server: Extract hasher to separate interface - - 80828b593 2022-06-13T18:20:18+02:00 server: Remove duplicated compaction revision - - 34a02ba62 2022-06-13T18:20:17+02:00 server: Return revision range that hash was calcualted for - - 76d3c527a 2022-06-13T18:19:26+02:00 server: Store real rv range in hasher - - 8f7b05348 2022-06-13T18:19:26+02:00 server: Move adjusting revision to hasher - - 19941654f 2022-06-13T18:19:26+02:00 server: Pass revision as int - - 887e53e61 2022-06-13T18:19:26+02:00 server: Calculate hash during compaction - - 7381c81a7 2022-06-13T18:19:26+02:00 server: Fix range in mock not returning same number of keys and values - - 08a43178f 2022-06-13T18:19:26+02:00 server: Move reading KV index inside scheduleCompaction function - - 638ca1006 2022-06-13T18:19:26+02:00 server: Return error from scheduleCompaction - - 0f90359c4 2022-06-13T18:19:25+02:00 server: Refactor hasher - - e62c35879 2022-06-13T18:19:25+02:00 server: Extract kvHash struct - - fcaf76dbc 2022-06-13T18:19:25+02:00 server: Move unsafeHashByRev to new hash.go file - - 0984878ae 2022-06-13T18:19:25+02:00 server: Extract unsafeHashByRev function - - 39c6935c6 2022-06-13T18:19:25+02:00 server: Test HashByRev values to make sure they don't change - - 01e85be15 2022-06-13T18:19:25+02:00 server: Cover corruptionMonitor with tests - - 7c35dadc2 2022-06-13T18:19:24+02:00 server: Extract corruption detection to dedicated struct - - 70fbc0b3e 2022-06-13T18:04:24+02:00 server: Extract triggerCorruptAlarm to function - - bce22b587 2022-06-13T11:48:34+02:00 Use single "stage/tracked" label to prevent issue from getting stale - - 5f8cd5bd3 2022-06-13T14:08:39+08:00 Replace all etcd versions with the centralized definitions - - 4f202a642 2022-06-13T13:37:41+08:00 Define all versions in a centralized place - - 5a93b087a 2022-06-10T11:43:10-04:00 Separate the build library functions and add a top level tools script - - a7aca4a7a 2022-06-10T09:10:10+08:00 update 3.5 changelog to add the --experimental-bootstrap-defrag-threshold-megabytes flag - - b295cebc0 2022-06-09T20:35:02+08:00 mvcc: improve the use of locks in index.go - - 72a84ddbc 2022-06-09T13:34:33+02:00 server: Fix broken code during merge - - ba405f64c 2022-06-08T10:16:04+02:00 Update link to tuning page - - 73766a92f 2022-06-07T11:47:28-04:00 Update build file to run with an argument - - 8ad87be7a 2022-06-07T18:59:00+08:00 fix the DATA RACE issue of TestCloseProposerInflight - - dabf6978c 2022-06-07T18:45:43+08:00 Fix potential deadlock between Revoke and (Grant or Checkpoint) - - 800d3ec3c 2022-06-04T14:12:57+08:00 update 3.5 changelog to cover the two bug fix related to leases revoke and checkpoint - - 1d482bfc0 2022-05-29T05:08:41+08:00 Move the local variable cps into the loop so that it will not continue to schedule checkpoints after it steps down the leader - - 6e9397d17 2022-05-27T20:22:29+08:00 move lease related code into a separate file lease.go - - 25deb436a 2022-05-25T16:44:41+08:00 fix the race condition between goroutine and channel on the same leases to be revoked - - 42797d88e 2022-05-25T05:47:40+08:00 update changelog-3.5 to correct the entry for decommissioning etcdctl migrate command - - c75bdef4d 2022-05-21T06:58:05+08:00 add etcd tool binaries into .gitignore - - 534d7b479 2022-05-20T23:45:14+08:00 use go install instead of go get - - 41ff2370e 2022-05-20T14:42:39+02:00 Remove unused code and apply code-quality suggestions. - - 85b18c9b3 2022-05-20T14:32:04+02:00 Rename WrapApply to Apply. - - 87b80f16c 2022-05-20T14:32:04+02:00 Fixing missing comment on the dispatch() function. - - 42c6e08f2 2022-05-20T14:32:04+02:00 Rename the txn, so as not to be the same as the package name. - - 0da0cf479 2022-05-20T14:32:04+02:00 expose UberApplier as interface (not as implementation struct). - - 5097b33ab 2022-05-20T14:32:04+02:00 Rename etcdserver/etcderrors package to etcdserver/errors. - - 63b2f63cc 2022-05-20T14:32:04+02:00 Rename package alising "apply2" -> apply. - - c62f01e5f 2022-05-20T14:32:04+02:00 Move CheckTxnAuth to txn. - - c78bf655a 2022-05-20T14:32:04+02:00 Simplify imports and improve comments. - - 4e04770ba 2022-05-20T14:32:04+02:00 Apply encapsulation: Cleanup metrics reporting. - - 47a771871 2022-05-20T14:32:04+02:00 Move apply to its own package (no dependency on etcdserver). - - fc6a6c3c2 2022-05-20T14:32:04+02:00 Move etcdserver/errors.go to sepatate package to avoid cyclic dependencies. - - e2ae9b1d1 2022-05-20T14:32:04+02:00 Move server/etcdserver/txn.go to new package: server/etcdserver/txn - - b073129d0 2022-05-20T14:32:04+02:00 Applier does not depend on EtcdServer any longer. - - 651de5a05 2022-05-20T14:32:04+02:00 Rename EtcdServer.Id with EtcdServer.MemberId. - - f348134ed 2022-05-20T14:32:04+02:00 Marge applierV3Internal into applierV3 interface - - b7ad746bf 2022-05-20T14:32:04+02:00 Encapsulating applier logic: UberApplier coordinates all appliers for server - - cdf9869d7 2022-05-20T14:32:04+02:00 Encapsulation of applier logic: Move Txn related code out of applier.go. - - e02ceee9f 2022-05-19T11:58:22-04:00 Governance: Use lazy consensus when needed to make decision - - b32ac1f67 2022-05-19T07:19:44+08:00 fix a typo: print the correct error info - - 63e47656e 2022-05-18T12:21:43+02:00 scripts: Detect staged files before building release - - 657a197bf 2022-05-17T11:17:42+08:00 add range flag for delete in etcdctl - - 31bcae0dc 2022-05-16T16:02:18+02:00 Documentation: Publish v3.5 data inconsistency postmortem - - e737f4296 2022-05-16T14:37:47+02:00 scripts: Avoid additional repo clone - - ee08770bf 2022-05-16T14:35:44+02:00 tests: Make common framework context aware - - 83a4309f3 2022-05-13T15:04:45+02:00 tests: Refactor spawn json command - - 9beb29916 2022-05-13T14:41:53+02:00 tests: Extract cluster test cases - - beeb44d4e 2022-05-13T19:40:57+08:00 hide the revision field when it isn't populated - - 1e6163ba2 2022-05-13T17:44:58+08:00 remove v2 http proxy in 3.6 - - 4fc9721fa 2022-05-13T10:50:19+08:00 provide a generic assert function - - c1e58ee91 2022-05-11T21:21:06-04:00 server: Don't register director interrupt handler - - b5b466088 2022-05-11T20:41:10-04:00 server: Move director interrupt handler to method - - 655d171ec 2022-05-11T18:19:22-04:00 server: Add director interrupt handler - - 55f0c96fa 2022-05-11T10:33:47+05:30 tests: Migrate Txn tests to common functional test framework - - 70a7674e2 2022-05-10T23:36:14-04:00 server: Director can be stopped - - e004c91d3 2022-05-10T10:17:16-07:00 migrate e2e & integration role_test to common - - 983e8ff11 2022-05-07T14:31:03+08:00 update 3.5 and 3.6 changelog for recent merged PRs - - cfc88b5d3 2022-05-07T14:09:15+08:00 update 3.4 change log for 3.4.19 - - e7f8bf7c4 2022-05-06T20:29:42+08:00 enhance the /version endpoint to add storageVersion - - d58f97189 2022-05-06T12:23:20+02:00 tests: Use zaptest.NewLogger in places we missed - - e292e5b0b 2022-05-06T12:09:44+02:00 tests: Apply suggestions from code-review - - a65f7da5c 2022-05-06T12:09:44+02:00 server: Implement HA downgrade test - - c50fbb9ad 2022-05-06T12:09:44+02:00 tests: Retry validating version during downgrades - - c9af75dd8 2022-05-06T12:09:43+02:00 tests: Improve logging in downgrade tests - - 7b04674d1 2022-05-06T12:09:43+02:00 server: Move fatal calls out of internal function to make stacktrace cleaner - - 75449c075 2022-05-06T12:09:43+02:00 tests: Allow sepecting member to in curl commands - - 923096a2b 2022-05-06T12:09:43+02:00 tests: Simplify downgrade tests - - 3f05f7de9 2022-05-06T12:09:43+02:00 tests: Use restart in downgrade tests - - 8cfb658dd 2022-05-06T11:50:25+02:00 coverage: Run coverage only on push - - 8abff7918 2022-05-06T15:49:55+08:00 remove the asset workflow/transparency.yaml - - 89f455be7 2022-05-05T10:51:57+02:00 Add Benjamin (ahrtr@) as a project maintainer - - 96840277d 2022-05-05T10:07:02+02:00 github: Add necessery permissions for CodeQL - - 26f42e7a9 2022-05-05T09:52:14+02:00 server: Apply review comments and split basic handler - - fb361e43f 2022-05-05T09:52:14+02:00 server: Split code for debug and version endpoints - - 722ec487d 2022-05-05T09:52:14+02:00 server: Split metrics and health code - - 600ee13ac 2022-05-05T09:52:14+02:00 server: Cover V3 health with tests - - e9dec74de 2022-05-05T09:52:14+02:00 server: Refactor health checks - - 191aed645 2022-05-05T09:52:14+02:00 server: Run health check tests in subtests - - e4e391792 2022-05-05T09:52:13+02:00 server: Rename test case expect fields - - 0fb194d6f 2022-05-05T09:52:13+02:00 server: Use named struct initialization in healthcheck test - - 0096d2ecd 2022-05-05T09:52:13+02:00 server: Remove unused NewClientHandler - - df2584428 2022-05-04T05:48:53+08:00 change ARCH to GOARCH in build.yaml - - bf472ec05 2022-05-04T00:41:36+09:00 Update CHANGELOG for PR 13999 - - fb2eeb902 2022-05-03T20:02:47+08:00 verify consistent_index in snapshot must be equal to the snapshot index - - 755e2e775 2022-05-01T21:12:38+08:00 fix data race in testWatchOverlapContextCancel #14003 - - 28240cf0c 2022-04-28T19:23:38+08:00 simply etcdutl backup command to cleanup v2 related implementation - - 02236b277 2022-04-28T01:13:02-04:00 Doc: add installtion instructions for tools - - dd98f1ceb 2022-04-26T15:42:45+02:00 Make DRY_RUN explicit - - 24002fb09 2022-04-26T12:32:00+08:00 allocate unique port for each member in test cases - - 67f3bb3ad 2022-04-25T10:24:32-07:00 tests/common/lease: don't use revision to wait for leases - - 27bd78f6a 2022-04-25T09:52:12-07:00 Update golang.org/x/crypto to latest - - 5472e589c 2022-04-25T10:12:01+02:00 scripts: Add tests for release scripts - - 6d133aaf6 2022-04-25T15:06:38+08:00 doc: Fix Markdown code block - - ccf178cce 2022-04-24T19:10:54+08:00 update the release date of 3.5.4 - - d6368a20c 2022-04-24T12:08:42+02:00 etcdctl: Remove V2 API commands - - d4a21b5d1 2022-04-22T14:38:48-04:00 Doc: update logging convention - - 7fe1bf52d 2022-04-22T18:30:21+02:00 Documentation: Update postmortem based on feedback from @ptabor - - 1d13e0733 2022-04-22T12:08:54-04:00 Fix logger spelling in NewZapLoggerBuilder godoc - - d69e07dd3 2022-04-22T12:32:05+02:00 Verification framework and check whether cindex is not decreasing. - - e9bc382c8 2022-04-22T11:41:03+02:00 Documentation: Lowercase etcd in postmortem - - 00ca55816 2022-04-22T08:57:19+02:00 Fixed goroutine leak on NewServer - - e85dc3e85 2022-04-22T06:17:14+08:00 update changelog for 3.5.4 and 3.6 - - b97f28c90 2022-04-21T18:16:20+02:00 Documentation: Create a draft data inconsistency postmortem - - a722827c9 2022-04-21T12:33:10+02:00 Documentation: Update contributor guide and remove outdated ROADMAP.md - - 6eef7ede4 2022-04-20T21:44:48+08:00 Update conssitent_index when applying fails - - efa52c4e1 2022-04-20T10:58:57+02:00 docs: Add contributor documentation - - fe35b5130 2022-04-19T13:49:08+02:00 Fix code scanning alert: This log write receives unsanitized user input - - 12ab72a6f 2022-04-19T08:35:22+05:30 smoke test:fix license header check - - 8a22d640a 2022-04-18T22:54:51+02:00 add OUTPUT_FILE='foo.log' env variable support to test.sh script. - - f07745a21 2022-04-18T08:48:42-04:00 Add unit test for canonical SRV records - - 1f9a5d5fd 2022-04-18T08:48:42-04:00 Revert "update changelog for both 3.5 and 3.6 for the PRs of trimming the suffix dot from the target in SRV record" - - d02a5363b 2022-04-18T08:48:42-04:00 Revert "trim the suffix dot from the srv.Target for etcd-client DNS lookup" - - 842fed52c 2022-04-18T08:56:19+08:00 use lineariziable range request in TestKVGet - - 55a7c91de 2022-04-17T23:28:26+02:00 test.sh: Tools run correctly on OsX - - cf2d98cc8 2022-04-17T23:21:37+02:00 Fix PASSES="build" on OSX - - 0dae4b3b1 2022-04-14T16:13:28+08:00 rollback the opentelemetry bumpping to recover the pipeline failures - - f409f39bb 2022-04-13T21:55:56+02:00 Update production recommendation for v3.5.3 - - eab1e0c5d 2022-04-13T07:14:10-07:00 go.mod: upgrade opentelemetry deps - - d7e498a5c 2022-04-12T16:53:09+02:00 CHANGELOG-3.5: Add #13862 - - 6cb7372e6 2022-04-12T13:42:13Z clientv3: disable mirror auth test with proxy - - 98764fade 2022-04-12T10:34:10+02:00 scripts: Remove Windows build scripts - - dfd1d49c9 2022-04-12T16:31:26+08:00 update 3.6 and 3.5 change log to cover two issues - - 484d2f01f 2022-04-12T10:36:29+08:00 set backend to cindex before recovering the lessor in applySnapshot - - 3152dc817 2022-04-11T23:44:54Z contrib/raftexample: Save snapshot and WAL before hard state - - e324cc1cb 2022-04-11T13:42:03Z cv3/mirror: Fetch the most recent prefix revision - - 1b3d6cb0c 2022-04-10T14:44:55+08:00 set an separate applyTimeout for the waitAppliedIndex - - fe3a57976 2022-04-10T14:44:55+08:00 support linearizable renew lease - - cd8f8b9e0 2022-04-09T13:53:21-04:00 MAINTAINERS: update Sam's contact email - - bd0c5a74a 2022-04-09T05:34:24+08:00 update 3.5 and 3.6 changelog to cover the data inconsistency issue - - d65940395 2022-04-08T18:45:13+01:00 Update server/etcdserver/api/v3rpc/maintenance.go - - 6e1afa967 2022-04-08T18:44:50+01:00 Update client/v3/snapshot/v3_snapshot.go - - 1bb59adb1 2022-04-08T16:27:52+02:00 *: update golang.org/x/crypto - - a3650db57 2022-04-08T15:45:05+08:00 use readTx in (*store).restore - - 4c8ef011e 2022-04-07T23:24:35+01:00 *: drop use of humanize.Time() in favour of time.Duration.String() - - 1ea53d527 2022-04-07T19:00:03+02:00 server: Save consistency index and term to backend even when they decrease - - 7cc00ec98 2022-04-07T13:10:15Z tests/framework/integration: Fail nesting early - - dedb661d9 2022-04-07T14:27:51+02:00 tools/mod: Update tools - - 4033f5c2b 2022-04-07T15:16:49+08:00 move the consistentIdx and consistentTerm from Etcdserver to cindex package - - e155e5088 2022-04-07T05:35:13+08:00 rename LockWithoutHook to LockOutsideApply and add LockInsideApply - - 47038593e 2022-04-07T05:35:13+08:00 set the consistent_index directly when applyV3 isn't performed - - 7ac995cdd 2022-04-07T05:35:13+08:00 enhanced authBackend to support authReadTx - - a4c5da844 2022-04-07T05:35:13+08:00 added detailed comment to explain the difference between Lock and LockWithoutHook - - bfd5170f6 2022-04-07T05:35:13+08:00 add a txPostLockHook into the backend - - f0f77fc14 2022-04-06T19:03:24+02:00 go.mod: Bump prometheus/client_golang to v1.12.1 - - 3ffa25351 2022-04-06T16:10:38+02:00 tests: Add tests for snapshot compatibility and recovery between versions - - 5b84b30fc 2022-04-06T17:38:46+08:00 fix unexpose todo - - 73fc86424 2022-04-05T15:53:38+02:00 tests: Pass logger to backend - - 1d3517020 2022-04-05T15:34:45+02:00 server: Add verification of whether lock was called within out outside of apply - - f71196d11 2022-04-04T15:43:17+02:00 tests/common/lease: Wait for correct lease list response - - 804fddf92 2022-04-04T13:03:15+02:00 tests: Use zaptest.NewLogger in tests - - 543c87cc3 2022-04-04T18:58:18+08:00 etcd-dump-logs will panic if there is no WAL entry after the snapshot - - d4dcd3061 2022-04-03T23:13:01+02:00 Fix flakes in TestV3LeaseCheckpoint/Checkpointing_disabled,_lease_TTL_is_reset - - 90796720c 2022-04-03T14:48:36+02:00 Reduce integration test parallelism to 2 packages at once. - - ed1bc447c 2022-04-03T14:48:36+02:00 Flakes: Additional logging and timeouts to understand common flakes. - - 68f2cb8c7 2022-04-03T14:16:45+02:00 Fix ExampleAuth from integration/clientv3/examples (on OsX) - - d57f8dba6 2022-04-03T12:23:09+02:00 Deflaking: Make WaitLeader (and WaitMembersForLeader) aggressively (30s) wait for leader being established. - - 2fab3f3ae 2022-04-03T09:16:55+02:00 Make naming of test-nodes consistent and positive: m0, m1, m2 - - 836bd6bc3 2022-04-03T06:13:09+08:00 fix WARNING: DATA RACE issue when multiple goroutines access the backend concurrently - - 8cd8a1ea1 2022-04-02T16:16:25+02:00 Flakes in integration/clientv3/examples/... - - 3b589fb3b 2022-04-02T16:12:02+02:00 Fix TestauthTokenBundleOnOverwrite on OsX: - - f9c9bfa44 2022-04-02T14:27:33+08:00 fix comment in raft.go - - c59cae5aa 2022-04-01T11:06:50-07:00 Makefile: Drop log tee calls - - 63346bfea 2022-04-01T10:23:42+02:00 server: Use default logging configuration instead of zap production one - - e5bf23037 2022-03-31T21:02:36+02:00 tests: Keeps log in expect to allow their analysis - - 29905029f 2022-03-31T11:18:36+02:00 Makefile: Additional logic fix - - ec29b9ee3 2022-03-31T09:48:21+02:00 Makefile: Fix wrong target - - 9b3b38336 2022-03-31T10:14:46+08:00 the file server/storage/mvcc/util.go isn't used at all, so removing it - - 125f3c3f9 2022-03-29T13:38:21-04:00 clientv3: filter learners members during autosync - - 88a39d780 2022-03-29T19:09:01+02:00 changelog: Update and deduplicate production recommendations - - afecd3139 2022-03-25T17:18:56+08:00 fix the api dependency in pkg, and update cobra to 1.4.0 - - 2ed87b9f2 2022-03-24T20:59:25+08:00 skip compact when rev not change at period compact mode - - b8c1ac8ef 2022-03-24T10:00:09+01:00 Add Changelog entry - - 62641d338 2022-03-24T16:20:28+08:00 set etcdutl to default - - 49e9a1458 2022-03-24T07:24:22+08:00 migrate unit test to cover the logic of converting ConfigSpec to Config - - f978da4f4 2022-03-24T06:18:25+08:00 move the newClientCfg into clientv3 package so as to be reused by both etcdctl and v3discovery - - c544b2a2a 2022-03-23T20:11:12+01:00 Update go to 1.17.8 - - 8d01ac281 2022-03-23T23:37:31+08:00 remove endpoints length check in TestValidateSecureEndpoints() - - ad78a74c4 2022-03-23T23:37:31+08:00 Update client/pkg/transport/tls_test.go - - 88e1d6b12 2022-03-23T23:37:31+08:00 using subtests for TestValidateSecureEndpoints() - - 4786a72cf 2022-03-23T23:37:31+08:00 Update client/pkg/transport/tls_test.go - - df71f59c0 2022-03-23T23:37:31+08:00 close idle connections - - 983ee82c9 2022-03-23T23:37:31+08:00 add test for transport/tls.go:ValidateSecureEndpoints() - - bd7d09255 2022-03-23T23:37:31+08:00 Fix panic in etcd validate secure endpoints #13810 - - bbc81bb6b 2022-03-23T18:32:13+08:00 enhance etcd-dump-db to display keys in meta more friendly - - 780e3ae93 2022-03-23T14:24:48+08:00 update 3.5 changelog to cover the fix for the watchablestore runlock bug - - 1649c9dfc 2022-03-23T11:05:52+08:00 Removing deprecated commands in etcdctl & etcdutl - - 378043583 2022-03-22T19:07:40+08:00 added unit test for newClientCfg - - 44aad460d 2022-03-21T14:53:29+01:00 tests: Migrate noquorum kv tests to common framework - - 7a0c254b7 2022-03-21T22:25:58+09:00 tests/integration: re-enable TestV3AuthOldRevConcurrent - - 3416042c5 2022-03-21T12:46:00Z tests: migrate user tests to common fw - - adae7a659 2022-03-21T12:44:51Z tests/framework: Add User operations - - c6488a2c5 2022-03-20T10:09:27+08:00 fix review - - 89146aa15 2022-03-20T02:06:42+08:00 chore: delete useless file - - bb7856090 2022-03-20T02:01:30+08:00 fix: set cluster size to 1 to avoid unstable - - 527edd39a 2022-03-20T01:40:53+08:00 fix alarm test - - e9fa17166 2022-03-19T16:31:19+08:00 fix test fail - - 3e657bdc5 2022-03-19T00:51:29+08:00 tests: Migrate key value Get to common framework - - 87740f6c7 2022-03-18T16:47:42Z tests: Migrate TestCtlV3LeaseRevoke.* to common - - ab3353582 2022-03-18T16:47:42Z tests/framework: Add Client.LeaseRevoke - - 36279e079 2022-03-18T16:47:42Z tests: migrate TestCtlV3LeaseKeepAliveOnce.* to common - - 353b011f5 2022-03-18T16:47:42Z tests/framework: Add Client.LeaseKeepAliveOnce - - c12e03c8e 2022-03-18T16:47:42Z tests: migrate TestCtlV3LeaseTestTimeToLiveExpired.* to common - - b50f10299 2022-03-18T16:47:42Z tests/framework: Add PutOptions - - dca5874d4 2022-03-19T00:46:42+08:00 tests: Migrate key value Get to common framework - - b7beaf9c6 2022-03-18T16:43:55Z tests: migrate TestCtlV3LeaseGrantLeases.* to common - - 68e649397 2022-03-18T16:43:53Z tests/framework: add Client.LeaseList - - 6b7be72a4 2022-03-18T16:43:20Z tests: migrate TestCtlV3LeaseGrantTimeToLive.* to common - - a53358473 2022-03-18T16:43:19Z tests/framework: add basic lease operations - - 66eb3dbbd 2022-03-18T19:17:48+08:00 tests: Migrate defrag tests to common framework - - d0688e015 2022-03-18T07:04:44+08:00 update the example output of 'etcdctl endpoint status -w table' - - edce939f6 2022-03-18T07:04:44+08:00 add one more field storageVersion into StatusResponse - - a045e4bbf 2022-03-17T12:55:08Z expect_test: Look up binaries from the path - - 3bbbef54c 2022-03-15T17:42:47Z integration/clientv3/exp/recipes: Fix lock test - - b50239f9a 2022-03-15T16:41:14Z integration/client/watch: remove duplicate setup - - a1f24e9af 2022-03-15T22:50:56+08:00 tests: Migrate endpoint tests to common framework - - 494a47124 2022-03-14T14:09:35+01:00 *: Restore release documentation - - 8c0e4fe55 2022-03-14T11:07:57+08:00 delete offline defrag in etcdctl - - 1a3822f2c 2022-03-13T05:41:49+08:00 Rename ClientConfig to ConfigSpec - - 3dcbbf62d 2022-03-12T06:38:41+08:00 Move clientconfig into clientv3 so that it can be reused by both etcdctl and v3 discovery - - 1bfc88a8d 2022-03-11T20:52:29Z Add fuzzing audit report - - 34cd8ae1a 2022-03-10T17:01:47+08:00 tests: Migrate compact tests to common framework - - 3ecd8d236 2022-03-10T04:39:56+08:00 update incorrect migration log message - - d578a86a5 2022-03-10T03:26:34+08:00 fix some log format typos - - 1ae5aa52d 2022-03-09T16:07:18+08:00 fix some typos related to downgrade - - 8800f0cab 2022-03-08T17:04:03+08:00 clean up stack log - - b6a2d2d48 2022-03-07T21:29:20-08:00 tools: Add -wal-dir flag on etcd-dump-logs to make it compatible with ETCD_WAL_DIR variable (#13672) - - 5cf6ba48d 2022-03-08T09:38:23+08:00 added a unit test for the method processMessages - - b7824b794 2022-03-07T20:28:53+08:00 fix some typos - - 793218ed2 2022-03-07T12:18:29+08:00 update the confstate before sending snapshot - - a60abee0d 2022-03-02T11:37:24+01:00 tests: Migrate kv delete tests to common framework. - - 124bc1ebb 2022-03-01T18:00:07+08:00 mvcc: clean up duplicate metrics name - - 49e9cb5f5 2022-03-01T10:43:33+01:00 tests: Test multi member cluster - - bd9f366f4 2022-03-01T10:43:31+01:00 tests: Migrate TestKVRange integration test to TestKVGet - - 74d77dbaa 2022-03-01T10:41:57+01:00 tests: Migrate TestKVGet e2e test to common test framework - - 81ef11ffb 2022-03-01T10:41:21+01:00 tests: Test different TLS configuration with TestKVPut - - 58c380891 2022-03-01T10:40:43+01:00 tests: Handle multiple cluster configurations - - 1c8adcd83 2022-03-01T10:40:42+01:00 tests: Handle simple TLS configuration for cluster in common framework - - f7ee30cc4 2022-03-01T10:35:18+01:00 tests: Implement remaining GetOptions fields - - 59f776477 2022-03-01T11:11:09+08:00 add timeout for http client - - fb5591050 2022-02-28T13:20:27+01:00 version: bump up to 3.6.0-alpha.0 - - 0ecd4de92 2022-02-28T16:22:40+08:00 delete duplicate metrics rangeCounterDebug - - 778c95fdf 2022-02-25T13:30:34+01:00 scripts: Fix release scripts - - 9b6681fff 2022-02-25T09:55:36+08:00 add failover test cases - - 65be41dd6 2022-02-24T10:36:46+01:00 tests: Rename framework to runner and document the runners - - 6f03dc741 2022-02-24T15:24:43+08:00 update 3.5 changelog to cover the PR of always printing raft_term in decimal when displaying member list in json - - 2f36e0c62 2022-02-24T09:11:41+08:00 Change discovery url to endpoints - - def122871 2022-02-23T16:47:52+01:00 tests: Use GetOptions to configure serializble get - - 744dd077c 2022-02-23T16:47:02+01:00 tests: Create common framework for e2e and integration tests and migrate TestKVPut test - - c4e5c1401 2022-02-23T10:36:59+01:00 Update Benjamin contact - - d61e9d967 2022-02-22T18:55:13+01:00 Add Benjamin to reviewers - - 42faf9fe0 2022-02-22T16:30:08+01:00 etcdctl: Use minor versions for downgrade - - c1c2f1233 2022-02-22T16:29:35+01:00 etcdctl: Documment downgrade commands - - 13e20cce5 2022-02-22T09:12:03+08:00 update 3.5 changelog to cover the PR of improving health check - - 5d3847577 2022-02-22T09:00:24+08:00 always print the raft_term in decimal even flag --hex is provided - - 16d700513 2022-02-21T17:58:20+01:00 etcdctl: Add dot at the end of sentences - - d0c1c3a1f 2022-02-21T17:58:20+01:00 client: Alias downgrade action enum - - 22ee50e00 2022-02-21T17:58:20+01:00 etcdctl: Fix target version not provided message - - 2a7766c8c 2022-02-21T17:58:19+01:00 tests: Switch downgradetests to use etcdctl - - 2db4d3555 2022-02-21T17:58:19+01:00 tests: Move etcdctl to e2e framework - - 8e71ebf07 2022-02-21T17:58:19+01:00 Add downgrade commands - - ebc86d12c 2022-02-21T23:22:49+08:00 support v3 discovery to bootstrap a new etcd cluster - - a0f26ff4e 2022-02-21T15:48:00+01:00 server: Snapshot after cluster version downgrade - - 868188801 2022-02-21T14:46:58+08:00 fix typo, renamed ErrGPRCNotSupportedForLearner to ErrGRPCNotSupportedForLearner - - 6781651e0 2022-02-21T07:15:19+08:00 update changelog for both 3.5 and 3.6 for the PRs of trimming the suffix dot from the target in SRV record - - 5fc0092c8 2022-02-18T18:16:19+08:00 trim the suffix dot from the srv.Target for etcd-client DNS lookup - - 5649cf3f1 2022-02-16T10:31:08Z Log and return instead of panic - - caeec38c2 2022-02-16T17:44:46+08:00 fix: a little grammar issue - - fad82c1b6 2022-02-15T15:32:31Z server/etcdserver: fix oss-fuzz issue N - - 8c91d60a6 2022-02-14T23:06:45+01:00 server: Switch to publishV3 - - 3de5e221a 2022-02-14T14:19:06+01:00 tests: Fix cluster version and downgrade request timeout - - 0fcb2a628 2022-02-14T11:50:27Z server/storage/wal: fix oss-fuzz issue 44433 - - 0df768d2b 2022-02-14T10:59:41Z server/etcdserver: fix oss-fuzz issue 42181 - - 1675df37d 2022-02-13T20:35:51-08:00 update 3.6 CHANGELOG - - fd79af9ee 2022-02-13T20:30:20-08:00 load all leases from backend - - b683aa125 2022-02-12T18:00:02-08:00 fix ctl_v3_kv_no_quorum_test.go and coverage failures - - 01347a8f5 2022-02-11T11:01:27-08:00 server/storage/backend: restore original bolt db options after defrag - - 029c35431 2022-02-11T10:57:02Z server/storage/mvcc: fix oss-fuzz issue 44449 - - 9d83325db 2022-02-11T10:51:01Z server/auth: fix oss-fuzz issue 44478 - - 72c33d8b0 2022-02-10T16:17:03+01:00 contrib/mixin: Generate rules, fix tests - - 900fc8dd7 2022-02-08T05:41:21+08:00 replace gobin with go install - - a1f3c2c7c 2022-02-02T13:55:52+01:00 server: Make --v2-deprecation=write-only the default and remove not-yet option - - 396efd960 2022-02-02T13:50:44+01:00 Cleanup scripts in root directory - - 902dc0501 2022-02-01T16:47:23+01:00 tests: Update assertAuthority to explain filtering put method requests - - 43c1631f2 2022-02-01T16:47:18+01:00 tests: Use cmp.Equal to avoid mutating arguments - - aa76b32a0 2022-02-01T15:36:45+01:00 release: Post v3.5.2 release updates and fixes - - 95ae9c19f 2022-01-29T19:01:45-08:00 Show db in use when print endpoint status (#13639) - - 0c67c5ca4 2022-01-28T16:12:00+01:00 tools: Move external packages constant to top level - - 3df14fc24 2022-01-28T16:08:28+01:00 Document proto annotations scripts - - 099cffcaa 2022-01-28T12:00:15+01:00 tests: Parallelize grpcproxy tests - - f4187b446 2022-01-28T11:40:55+01:00 tools: Improve proto annotation documentation - - c836905a1 2022-01-28T11:39:19+01:00 proxy: Fix proxy not passing Linearizable field by using GRPC client - - 1beae5428 2022-01-28T11:24:09+01:00 Add bug report issue template - - 2e74e4d63 2022-01-27T22:33:03+09:00 server/auth: avoid logging for JWT token for a case of failed parsing - - a879ccf15 2022-01-27T16:22:01+08:00 updated servePeers to remvoe the grpc server - - 1713dc67b 2022-01-27T16:19:20+08:00 etcd server shouldn't wait for the ready notification infinitely on startup - - f57e4a207 2022-01-26T18:24:49-05:00 Add Marek as a project maintainer - - 50b09d4f8 2022-01-26T20:18:43+01:00 Re-enable code coverage upload - - 4bfcd8425 2022-01-26T15:50:14+01:00 server: Handle V2Request when analysis WAL entries - - d865bb96f 2022-01-26T15:50:14+01:00 server: Refactor wal version to use visitor pattern - - 6d808e5d7 2022-01-26T15:50:14+01:00 *: Add static validation to etcd_version proto annotation - - 2d336a11c 2022-01-26T15:24:15+01:00 Remove badge for disabled test suite - - 178bfc5a5 2022-01-26T12:00:27+01:00 Remove unused .words file - - e65b64ad3 2022-01-26T11:48:52+01:00 Remove .travis.yaml - - db5b3a9a6 2022-01-26T11:46:20+01:00 Move changelogs to subdirectory - - d108a241d 2022-01-26T16:03:00+08:00 fix panic when restart after removeMember - - 692b3c4cd 2022-01-25T15:24:13+01:00 server: Remove most of V2 API - - 37879eb5f 2022-01-25T13:56:17+01:00 test: Migrate WaitMembersMatch to V3 API - - c59694d41 2022-01-24T17:26:51+01:00 test: Migrate WaitMembersForLeader to V3 API - - 81490c25d 2022-01-24T17:26:50+01:00 test: Migrate WaitStarted to V3 API - - ee6306b9f 2022-01-24T17:01:22+01:00 Migrate RemoveMember and AddMember to V3 API - - e9edc5432 2022-01-25T00:00:46+08:00 *: use `T.TempDir` to create temporary test directory - - 3788523a3 2022-01-24T15:33:30+01:00 tests: Move revision tests out of concurrency - - f8eeecc35 2022-01-21T16:45:08-05:00 Revert CodeQL permission - - 0ab7c7842 2022-01-21T14:21:10+01:00 Add required permissions for CodeQL - - a53074542 2022-01-20T14:10:09+01:00 test: Run v2 discovery tests on previous version binary - - 264fdbb6a 2022-01-20T14:10:09+01:00 test: Remove separation between V2 and V3 cluster in integration tests - - 7b365e48d 2022-01-20T14:10:09+01:00 test: Remove usage of V2 Put API in tests - - de30257d7 2022-01-20T14:10:09+01:00 test: Always run server with grpc enabled - - 51f72915e 2022-01-20T14:10:09+01:00 test: Move UseGRPC to member config - - 87c8e8b86 2022-01-20T14:10:09+01:00 test: Migrate to ClusterV3 cluster in integration tests - - 69fc517e5 2022-01-20T14:10:09+01:00 test: Add StrictReconfigCheck to cluster - - 98242da5f 2022-01-20T14:10:09+01:00 test: Handle adding new members for clusters with TCP enabled - - 5bcbf7798 2022-01-20T14:10:09+01:00 tests: Move client to member struct - - dc90699db 2022-01-20T16:17:10+08:00 README: fix go version that development required - - 7460379ba 2022-01-19T19:55:40+01:00 contrib/mixin: add missing summary to alerts - - fff5c11ee 2022-01-19T13:32:23-05:00 Update maintainers - - 282e4e6e8 2022-01-19T22:24:49+08:00 make code more readable. - - 381752182 2022-01-18T21:13:35+08:00 Fix for code style - - 15568f4c0 2022-01-18T07:46:37+08:00 add protection code for Range when the sortTarget is an invalid value - - 8d8247b09 2022-01-18T06:11:33+08:00 format listenning address correctly for IPv6 ip address - - fdd98477e 2022-01-17T16:52:58+01:00 Update dep: require gopkg.in/yaml.v2 v2.2.8 -> v2.4.0 due to: CVE-2019-11254 - - 23f3bdd18 2022-01-17T19:04:40+08:00 Empty Commit for CI - - 7ef4fe328 2022-01-17T10:01:46Z raft: fix out-of-bounds in maybeAppend - - 5b09de33a 2022-01-17T11:12:25+08:00 code clean: make rangeKeys close to storeTxnRead. - - f8aafea50 2022-01-17T06:21:22+08:00 add protection code to prevent etcd from panic when the client api version is not valid UTF-8 - - 3710083dc 2022-01-16T16:46:50+01:00 retry_interceptor.go: Log the method that failed - - b09558844 2022-01-16T14:55:36+08:00 use test.sh instead of test for linux-386-unit-1-cpu - - 1d706179b 2022-01-16T10:43:15+08:00 mvcc: add test-case - - 401cc1a57 2022-01-15T13:16:44+08:00 mvcc: add a fast return at put method - - ee5ef42c5 2022-01-14T13:19:30+01:00 server: --enable-v2 and --enable-v2v3 is decomissioned - - 357006172 2022-01-14T12:53:09+01:00 ctlv3: add forgotten member promote method to printerRPC - - 4032d4f66 2022-01-13T14:29:09+01:00 Remove CodeQL errors - - 6ef154e54 2022-01-13T14:55:08+08:00 update CHANGELOG-3.5.md to cover the fix for issue 13494 - - 5e06fd40d 2022-01-12T13:39:30+01:00 README: Cleanup community meetings video recordings - - eac6d7135 2022-01-12T11:51:12+01:00 tests: Add integration test for revision monotonic under failure injection - - ce086a4ba 2022-01-12T03:13:27+01:00 *: Bump to go 1.17.6 - - 746c0ea27 2022-01-12T03:00:08+01:00 tests/Dockerfile: Update base to ubuntu 21.10 - - cf7e8b353 2022-01-12T03:00:08+01:00 go.mod: Bump golang.org/x/net dependency; regenerate go.sum - - 9404d523b 2022-01-12T03:00:08+01:00 Build locally if docker-test container image does not exist - - ce50f6816 2022-01-12T03:00:08+01:00 *: Bump to go 1.17.5 - - 6aac35dd3 2022-01-10T19:06:07Z v2auth: fix out of bounds in test - - 1e5bd3957 2022-01-05T21:36:27-05:00 Update supported versions and ref to the policy - - a9652b4b4 2022-01-04T17:57:19-05:00 fixing the leaks in TestStressWatchCancelClose - - 0cc789d81 2022-01-01T00:13:33+08:00 update dump db tool - - 17fd2e728 2021-12-31T14:39:46+07:00 Disable auth gracefully without impacting existing watchers - - 5620a9c22 2021-12-29T14:10:36-08:00 Golang Client docs: defer cancel(), avoid erroring - - 77bf0a5a9 2021-12-29T17:35:25+08:00 update cobra version to 1.2.1 - - 97d1f935f 2021-12-29T11:23:38+08:00 avoid always update meta term. - - df8efd385 2021-12-27T20:55:02+08:00 Fix goroutine leaks in TestCommitPagination - - e6f28dbeb 2021-12-27T20:36:26+08:00 Fix goroutine leaks in TestNodeProposeAddDuplicateNode - - 98b0d901e 2021-12-24T15:57:38-05:00 fixing goroutine leaks - - f24e0234b 2021-12-23T21:23:58+08:00 Use Distroless as base image - - 661e0a91e 2021-12-22T16:59:44+08:00 added a new flag --rev to make-mirror command to support incremental mirror - - a45c73d9b 2021-12-21T17:49:47-05:00 resolve the conflict - - 246e7eba0 2021-12-21T04:46:39-05:00 fixing the goroutine in two unit tests - - 5e8f50bb0 2021-12-17T20:03:19-05:00 remove the extra stop - - bbb187dcc 2021-12-17T16:06:37-05:00 images: Use Kubernetes debian-base:bullseye-v1.1.0 as base image - - ddb9554ee 2021-12-17T17:35:36+01:00 server/etcdmain: add build support for Apple M1 - - 0098dbf35 2021-12-15T22:38:25-05:00 fixing two goroutine leaks and one panic - - 0213b8bae 2021-12-15T02:43:49-05:00 fixing goroutine leaks in testServer - - 3ebd0a7d0 2021-12-15T01:54:51-05:00 fixing the goroutine leak in TestBackendClose - - d1194977e 2021-12-15T01:22:56-05:00 fix potential goroutine leaks in TestTxnPanics - - 793e081a5 2021-12-10T05:05:48+08:00 remove the redundant line from test.sh - - 7be1464ef 2021-12-03T05:52:12+08:00 set the backend again after recovering v3 backend from snapshot - - 48a7aab2b 2021-12-02T14:36:57+01:00 server: Add lease checkpointing fix information to CHANGELOG - - 7d10899d7 2021-12-02T12:26:47+01:00 server: Require either cluster version v3.6 or --experimental-enable-lease-checkpoint-persist to persist lease remainingTTL - - e24796e8e 2021-12-02T01:02:24+01:00 e2e: Call WithStopSignal on proxyV2 object - - 8b3405bdb 2021-11-30T06:26:11+08:00 etcdctl: enhance the make-mirror command to return error asap with wrong command line parameters - - fd77b2700 2021-11-26T15:17:22+01:00 etcdserver,integration: Store remaining TTL on checkpoint - - 48a360aad 2021-11-26T14:34:19+01:00 lease,integration: add checkpoint scheduling after leader change - - 7e6c29c19 2021-11-26T11:05:36+08:00 fix runlock bug - - 63ff6d403 2021-11-25T05:57:55+08:00 correct the public key comparison logic - - 71493bde3 2021-11-24T16:03:33Z *: Upgrade to use go.opentelemetry.io/otel@v1.2.0 - - 7eb4bed25 2021-11-24T09:56:33Z fix etcd benchmark binary not found - - ae7143903 2021-11-21T23:04:58+09:00 Update CHANGELOG for PR 13477 - - eccabd237 2021-11-16T22:39:31+08:00 etcdctl/ctlv3/command: add use time for defrag command - - 23146a9fa 2021-11-15T17:21:32-05:00 CHANGELOG: add experimental-max-learners - - 09ff05108 2021-11-15T05:57:54+08:00 enhance health check endpoint to support serializable request - - d6161ec38 2021-11-12T14:34:33-08:00 Update CHANGELOG - - 729af2ad2 2021-11-10T20:12:28+01:00 fix undefined io - - f6f27d32d 2021-11-09T11:33:59-08:00 server/etcdserver/api/etcdhttp: exclude the same alarm type activated by multiple peers - - b5e4c2d3c 2021-11-09T11:16:40-08:00 client/v2: remove unsafe json-iterator/reflect2 - - 63a1cc3fe 2021-11-09T09:52:00-05:00 add --experimental-max-learner flag - - 9d47a97b0 2021-10-29T12:47:19+02:00 server: Remove lock from adapter to avoid deadlock - - 6c2be0822 2021-10-29T12:47:19+02:00 tests: Add e2e tests for downgrades - - 431adc587 2021-10-29T12:47:19+02:00 server: Implement storage downgrades - - 335dc98c8 2021-10-29T12:47:19+02:00 server: Use server version to decide if to downgrade has finished - - f5d71fa38 2021-10-29T12:47:19+02:00 server: Detect when WAL includes unapplied cluster version set to higher version - - 758fc0f8a 2021-10-29T12:47:17+02:00 server: Depend only on cluster version to detect downgrade - - a0bdfc4fc 2021-10-27T17:26:30-04:00 tests/integration/clientv3: allow time for endpoints to update - - 316e62b4e 2021-10-27T14:26:55-04:00 *: fixup go 1.17 bump - - 2a151c898 2021-10-28T00:05:28+08:00 *: move from io/ioutil to io and os packages - - e6e279a14 2021-10-27T13:44:54+02:00 *: Bump go to go v1.17.2 - - 42789e444 2021-10-26T16:41:55+08:00 fix genproto - - ea3c86ef5 2021-10-25T14:10:27-07:00 raft: add test for leadership transfer in joint configuration - - 020c4f8ca 2021-10-24T19:33:22+08:00 raft: avoid jump tag to make code more understandable - - 89ac2b306 2021-10-22T21:51:06-07:00 MAINTAINERS: update Gyuho's contact email - - 9c6d57918 2021-10-22T16:36:59-07:00 update CHANGELOG - - 7b6554fd3 2021-10-22T16:36:37-07:00 non mutating requests pass through quotaKVServer when NOSPACE - - fead3be93 2021-10-20T13:42:43+01:00 Grafana datasource template should be labelled 'Data Source'. - - ca9b720c1 2021-10-20T10:34:35+02:00 tests: Move integration setup to separa framework package - - 007a77500 2021-10-20T12:00:42+08:00 CHANGELOG: add v3.5 to recommended version list - - dcd0d3fc9 2021-10-19T13:06:40+02:00 tests: Extract e2e cluster setup to separate package - - 9084accea 2021-10-15T22:03:23-07:00 tools/benchmark: add autoSync flag - - 9038e6535 2021-10-15T22:00:16-07:00 scripts/genproto.sh: fix module path of wal proto files - - 74d262126 2021-10-15T14:55:00-07:00 CHANGELOG: 3.5.1 - - f8c1f7804 2021-10-15T13:27:51-07:00 CHANGELOG: 3.4.18 - - a3b17b3d9 2021-10-15T13:13:46-07:00 CHANGELOG: 3.3.27 - - aef9131c8 2021-10-15T15:10:52+02:00 contrib/mixin/mixin.libsonnet: Include gRPC method in alert description - - 49a8aa7f4 2021-10-13T14:08:27+03:00 run fix.sh - - 4f4b12d52 2021-10-13T13:51:58+03:00 server: update OpenTelemetry to 1.0.1 - - 923f0aa3e 2021-10-09T14:27:10+02:00 etcdserver: Expose metrics with all known peers - - 0eb72bde2 2021-10-08T16:21:46-04:00 contrib/mixin: omit Defragment method from etcdGRPCRequestsSlow - - 4bcdee5c6 2021-10-08T22:01:11+02:00 tests: Extract flag init from main_test.go - - f92b4f9a2 2021-10-08T12:01:54+02:00 server: Integrate version validation logic into tests - - 620832a4a 2021-10-08T12:01:54+02:00 server: Use panic instead of os.Exit in mustDetectDowngrade - - d039f016c 2021-10-08T12:01:53+02:00 server: Move Storage interface to storage package - - 703df1c49 2021-10-08T12:01:53+02:00 server: Move wal versioning functions to wal package - - e47c3c22d 2021-10-08T12:01:51+02:00 server: Move downgrade API logic into version package - - 1e5e57f26 2021-10-08T10:41:37+02:00 server: Move downgrade detection code to version package - - 378159af3 2021-10-08T10:41:37+02:00 server: Refactor cluster version decision code - - 2de36c059 2021-10-08T10:41:35+02:00 server: Cover monitor with upgrade unit tests - - 471a80466 2021-10-08T14:59:41+08:00 Remove the unnecessary code - - 0504ecdc7 2021-10-08T12:07:02+08:00 Refine some code and fix a typo - - 3644c9d67 2021-10-07T17:53:59+03:00 client/pkg/fileutil: add missing logger to {Create,Touch}DirAll - - 75747f24b 2021-10-07T11:59:32+02:00 Add unix socket test to TestNewURLsValue - - d93b7c8cb 2021-10-07T11:59:32+02:00 pkg/types: Support Unix sockets in NewURLS - - 0804aae75 2021-10-06T11:09:50-07:00 CHANGELOG updating changelogs for etcd_disk_defrag_inflight backport - - 98427d2be 2021-10-04T15:02:11-07:00 contrib/mixin: Update dashboard queries to use $__rate_interval - - 205720c69 2021-10-04T12:52:20-07:00 CHANGELOG-3.6 Add etcd_disk_defrag_inflight to indicate if defrag is active - - 168b07438 2021-10-03T23:43:51-04:00 CHANGELOG: 3.3.26 - - 741e19fb5 2021-10-03T22:22:44-04:00 CHANGELOG: 3.4.17 - - 2d7a7d7da 2021-10-02T14:53:17-07:00 CHANGELOG - etcd_disk_defrag_inflight Add a gauge to indicate if defrag is active - - aab782904 2021-09-30T13:56:11-04:00 Dockerfile: bump debian bullseye-20210927 - - d52d7fc21 2021-09-29T16:25:01+02:00 Update changelog with information about authority header fix - - c929a917b 2021-09-29T14:41:35+02:00 client: Use first endpoint as http2 authority header - - ec419f861 2021-09-29T14:41:33+02:00 tests: Add grpc authority e2e tests - - 90932324b 2021-09-29T12:42:16+02:00 client: Add grpc authority header integration tests - - c3cc22c60 2021-09-29T12:42:16+02:00 tests: Allow configuring integration tests to use TCP - - 77cc91e0b 2021-09-29T12:42:16+02:00 test: Use unique number for grpc port - - 536475818 2021-09-29T12:42:16+02:00 tests: Cleanup member interface by exposing Bridge directly - - 451eb5d71 2021-09-29T12:42:14+02:00 tests: Make using bridge optional - - f2dd5d80a 2021-09-28T16:45:06+02:00 tests: Rename grpcAddr to grpcURL to imply that it includes schema - - 391d662f7 2021-09-28T16:45:06+02:00 tests: Remove bridge dependency on unix - - 817d2f40d 2021-09-27T17:02:13-07:00 storage/backend: Add a gauge to indicate if defrag is active - - b272b98b7 2021-09-26T13:58:21+07:00 netutil: make a `raw` URL comparison part of the urlsEqual function - - e7a09db01 2021-09-24T17:49:03+08:00 mvcc: simplify watchable_store addVictim code - - 3c6e09f93 2021-09-23T08:17:29+03:00 Handle empty log-format gracefully - - ec252d06c 2021-09-22T19:45:08+03:00 Return error when log-format is invalid - - e647995a3 2021-09-22T15:48:47+03:00 Add zap encoding configurable - - 35db0a581 2021-09-20T12:21:36+02:00 server: Refactor databaseFileMissing function - - 39f92a32c 2021-09-20T12:21:36+02:00 server: Move member dir creation up and introduce Close method to bootstrap structs - - a206ad2c9 2021-09-20T12:21:36+02:00 server: Rename GetIDs to GetEffectiveNodeIDsFromWalEntries - - a450dc7f9 2021-09-20T12:21:36+02:00 server: Rename function to NewConfigChangeEntries indicating we are not reading it from wal - - 4884e7d8c 2021-09-20T12:21:35+02:00 server: Move wal bootstrap from cluster to storage - - d3abf774e 2021-09-20T12:20:21+02:00 server: Move cluster backend setting up the call hierarchy - - 049e2d6ec 2021-09-20T12:20:19+02:00 server: Move raft up the bootstrap hierarchy - - 138afa5be 2021-09-20T12:19:10+02:00 server: Split wal, cluster and raft bootstraping - - 5d044563a 2021-09-20T12:19:10+02:00 server: Move raft and wal up the bootstrap hierarchy - - 8b0d8ea2a 2021-09-20T12:19:09+02:00 server: Move cluster up the bootstrap hierarchy - - 7c8f7166e 2021-09-20T12:17:33+02:00 server: Move bootstraping backend from snapshot to bootstrapBackend - - 0211f5a2e 2021-09-20T12:07:42+02:00 server: Move snapshot recovery to separate function - - c97ab8f5e 2021-09-20T12:07:41+02:00 server: Move cluster up the bootstrap hierarchy - - 648bac833 2021-09-20T12:06:19+02:00 server: Move bootstrappedRaft up in file - - 6a4ea70ae 2021-09-20T12:06:18+02:00 server: Move clusterID and nodeID up the bootstrap hierarchy - - db06a4ab2 2021-09-20T12:04:44+02:00 server: Move wal bootstrap up the hierarchy - - aa0c05000 2021-09-20T12:01:45+02:00 etcdserver: Add more hierarchy bootstap introducing a separate storage bootstrap step - - 6c8a4fdcc 2021-09-20T11:01:26+02:00 server: Rename bootstrappedWal variables to bwal to separate it from wal package - - b2d516848 2021-09-14T16:16:08+02:00 Stop using tip golang version in CI - - 65686efa4 2021-09-13T12:28:56+03:00 Decouple prefixArgs from os.Env dependency - - 79f6faa5c 2021-09-10T10:16:48+02:00 Apply suggestions from code review - - 66d05e549 2021-09-10T10:16:48+02:00 Try updating storage version immidietly after cluster version is set - - ff3729c4d 2021-09-10T10:16:48+02:00 server: Implement storage schema migration to follow cluster version change and panic if unknown storage version is found - - 0d15ff57e 2021-09-10T10:16:48+02:00 server: Implement schema migrations - - 9d81dde08 2021-09-10T10:16:48+02:00 server: Extract notifier struct - - ad69fe0f4 2021-09-10T00:44:52+08:00 fix IsOptsWithFromKey - - 2a750a8db 2021-09-05T01:13:52+09:00 *: implement a retry logic for auth old revision in the client - - 87f1dc7e4 2021-09-03T16:09:09-04:00 Fix a few typos - - ceb23c9d9 2021-09-02T21:11:19+08:00 rw benchmark add val-size - - af10e8791 2021-08-31T11:59:05+08:00 fix typo in wal doc, log: - - 810f48901 2021-08-30T13:55:35+02:00 server: Add sampling rate to distributed tracing - - af626ebfd 2021-08-30T11:44:02+03:00 client/pkg/v3: fixes Solaris build of transport - - 6d300fd38 2021-08-25T11:27:19+08:00 client/v3: refresh the token when ErrUserEmpty is received while retrying - - 55525e3cc 2021-08-12T09:56:38-04:00 Benchmark: remove redundant function call - - d0b9572fd 2021-08-09T17:55:43+08:00 fix typo in migrate - - a286f5bb9 2021-08-07T11:41:13+08:00 MINOR: Fix typos(hearbeat -> heartbeat) - - c9b4c866c 2021-08-06T13:29:25+02:00 Cleanup remaining TODOs for/past 3.5 release - - 55b697c52 2021-08-05T13:15:34+02:00 contrib/mixin/mixin.libsonnet: Add dashboard for peer round trip time - - b4b50f785 2021-08-04T17:58:18+02:00 etcdutl: Implement migrate --force command - - 0ae9f0625 2021-08-04T13:41:12+02:00 *: Bump release tests to use v3.5.0 - - 1b4e54c23 2021-08-04T13:36:08+02:00 api: Annotate proto messages and use it to detect etcd version that generated wal - - 83a325ac4 2021-08-03T13:09:15+02:00 server: Move all functions needed for storage bootstrap to storage package - - 23b742cfd 2021-08-03T12:48:41+02:00 server: Remove Quota direct dependency on EtcdServer - - 44b8ae145 2021-08-03T12:47:37+02:00 etcdserver: Move datadir and wal to storage package - - c10d50c4b 2021-08-03T13:49:47+05:30 Replace github.com/form3tech-oss/jwt-go with https://github.com/golang-jwt/jwt - - 5beca68a1 2021-08-02T17:19:21-04:00 Add missing PR number - - eac75c28a 2021-08-01T00:20:50+07:00 Apply suggestions from code review - - 99182f540 2021-07-30T15:02:15-07:00 etcdserver,clientv3: server-side ignore sort-ascend-key for range requests - - 7885f2a95 2021-07-29T17:54:14+02:00 Mixin: Support configuring cluster label - - 90773edb1 2021-07-29T14:33:10+08:00 remove always true in if statement - - 8929b8ca4 2021-07-29T00:29:11+08:00 CHANGELOG: update for 13237 - - 8a3c43827 2021-07-29T00:13:13+08:00 fix self-signed-cert-validity parameter cannot be specified in the config file - - 2a5dd39d7 2021-07-28T11:39:54+08:00 invaild args - - 2bcfc1ae2 2021-07-28T10:10:40+08:00 update makefile for test egrep - - 77a5072b6 2021-07-27T15:55:22-07:00 client: call .Endpoints() in dial() in client/v3/client.go instead of accessing cfg.Endpoints directly - - 7b5f8fc71 2021-07-27T17:32:39+02:00 *: Cleanup Makefile - - 2a26f7ae4 2021-07-27T08:33:44+03:00 etcdserver: configure "expensive" requests duration - - baf594b24 2021-07-23T00:36:15+07:00 etcdserver: add zap.AddCallerSkip in NewRaftLoggerZap - - daf7e0350 2021-07-22T23:15:20+07:00 etcdserver: remove code duplication from the peer.send func - - bc1646199 2021-07-20T18:12:02+02:00 server: Use zaptest in bucket tests and move backendMock to separate file - - a0554a6bd 2021-07-20T18:09:53+02:00 etcdserver: Create AuthBackend interface - - 6cd363354 2021-07-20T17:56:52+02:00 etcdserver: Rename membershipStore to membershipBackend - - 2f31cc3fb 2021-07-20T17:53:44+02:00 etcdserver: Create AlarmBackend interface - - a97e48e08 2021-07-20T17:50:47+02:00 Cleanup references to bucket module - - b922a2862 2021-07-19T01:31:21+07:00 netutil: add url comparison without resolver to URLStringsEqual - - 85f7b3c40 2021-07-16T15:25:53+02:00 contrib/mixin/mixin.libsonnet: Unify alerting description - - 484f39a90 2021-07-15T13:52:14+02:00 server: Add changelog entries for new storage package - - 027d8efa2 2021-07-14T13:24:50+02:00 test: Bump release tests to use 3.5.0 - - 3317716fa 2021-07-13T18:50:55+05:30 workflow: add workflow to invoke script that measures percentage of commits with failed status - - 2b796a0c9 2021-07-13T18:42:06+05:30 scripts: add script to measure percentage of commits with failed status - - f6534f1e9 2021-07-12T15:37:21+02:00 server: Move setting storage version to schema - - 5b6f4579f 2021-07-12T15:37:21+02:00 server: Rename buckets to schema - - 5e40a8b00 2021-07-12T15:37:21+02:00 server: Create storage package and move mvcc files to it - - ef6c276fa 2021-07-12T15:37:21+02:00 etcdserver: Move server bootstraping to one file - - b12f8c12c 2021-07-11T01:17:08+08:00 server/auth: enable tokenProvider if recoved store enables auth - - e21cf4ef0 2021-07-09T13:38:40+02:00 tkest: Prevent TestMaintenanceSnapshotWithVersionVersion & TestSaveSnapshotVersion from flaking - - fa86bc542 2021-07-08T14:53:25+02:00 Add Lili, Marek & Wilson as etcd reviewers. - - 36bb8d293 2021-07-08T20:00:03+08:00 Use method const in package http instead of literal - - 9824cc96e 2021-07-08T13:37:19+02:00 etcdserver: Fix typos in bootstrap - - e1fa356fa 2021-07-08T13:34:31+02:00 etcdserver: Refactor standalone boostrap - - 10c9fae51 2021-07-07T20:39:07-07:00 fix typo - - 244e5c2cc 2021-07-07T23:36:37+02:00 etcdserver: Unify memory storage boostrap - - a72d4462f 2021-07-07T23:36:35+02:00 etcdserver: Create boostrap wal functions - - e75dfde4c 2021-07-07T23:26:37+02:00 etcdserver: Move raft node start to just before newRaftNode - - 08935247a 2021-07-07T17:38:56+02:00 etcdserver: Create raftnode based on boostrapRaft struct - - 554777bba 2021-07-07T17:30:27+02:00 etcdserver: Extract boostrapRaft struct - - 880673c4a 2021-07-07T17:22:34+02:00 etcdserver: Extract raftConfig function - - 7d39c3c65 2021-07-07T16:14:33+02:00 etcdserver: Extract boostrapSnapshotter function - - af0439490 2021-07-07T16:04:52+02:00 etcdserver: Extract cluster boostrap functions - - 16b2a8b42 2021-07-07T15:56:43+02:00 etcdserver: Prepare boostrap to split cluster setup - - 4dd9424d1 2021-07-07T15:46:38+02:00 etcdserver: Extract boostrapBackend function - - 120cd5abe 2021-07-07T15:40:54+02:00 etcdserver: Extract etcdserver boostrap function - - 2db193fda 2021-07-07T13:29:45+02:00 etcdserver: Fix snapshot always nil - - d38c383c0 2021-07-05T23:54:49+08:00 etcdserver: skip empty alarm from the query parameter - - bf3e7033e 2021-07-05T13:23:53+02:00 etcdserver: Move Read/Update methods on Meta bucket to one place - - 7cb09ca55 2021-07-03T12:59:52-07:00 workflows: disable ARM64 job for maintenance - - 1c57287fc 2021-07-04T00:36:19+08:00 docs: fix broken links in README - - 9a6f2e085 2021-07-01T15:49:05-04:00 README: link maintainers role details - - 1b84b5e8d 2021-07-01T09:08:39-07:00 README: explain "MAINTAINERS" - - 4c5efc970 2021-07-01T14:41:13+02:00 *: Upload test junit results - - e5a026822 2021-07-01T13:35:10+02:00 etcdserver: Move put/read/delete on Alarm bucket to bucket package - - 9e511665c 2021-07-01T13:34:45+02:00 etcdserver: Move get/put/delete on Lease bucket to bucket package - - 0c701fb9f 2021-07-01T12:12:15+02:00 etcdserver: Move all get/put/delete on AuthUsers and AuthRoles to buckets module - - 221c88781 2021-07-01T11:26:27+02:00 etcdserver: Extract functions for setting and reading compaction information in backend - - b2e08fbfd 2021-06-29T18:02:11+02:00 etcdserver: Move read/update methods on Auth bucket to one place - - 50507d5f3 2021-06-29T16:14:06+02:00 etcdserver: Membership uses MembershipStorage interface instead of directly accessing Backend - - 86f68b937 2021-06-29T12:52:02+02:00 *: Add missing file licenses and Fix static analysis prevent skipping them in future - - 164a1c80f 2021-06-29T17:18:05+08:00 CHANGELOG-3.5: fix broken link - - f79d09d48 2021-06-28T16:40:50+02:00 etcdserver: Move all named keys to buckets module - - c3fe63a65 2021-06-25T14:44:30+02:00 client/pkg/fileutil: use golang.org/x/sys/windows for FileLockEx - - e2740b4af 2021-06-25T14:06:56+02:00 server,etcdutl: Preserve etcd version in backend allowing etcdutl to read it from snapshot - - dd62aebfb 2021-06-25T14:02:45+08:00 fix health endpoint not usable when authentication is enabled - - bcab57ce0 2021-06-24T15:12:01+02:00 CHANGELOG: add 3.6, highlight completion commands - - 3c6ace066 2021-06-24T12:22:40+02:00 etcdutl: add command to generate shell completion - - 96b8049d8 2021-06-23T23:16:47+02:00 Write test for for bash completion - - 823f85dfc 2021-06-23T19:27:29+02:00 etcdserver: Move version monitor logic to separate module - - ab8e5a4f8 2021-06-23T09:44:27-07:00 client/v3: do not overwrite authTokenBundle on dial - - 6eabc41ae 2021-06-22T13:29:23+02:00 etcdctl: add command to generate shell completion - - 4e060dc12 2021-06-22T12:26:24+02:00 tests/e2e/ctl_v3_snapshot_test.go: Adjust version to 3.6.0 - - b9d837183 2021-06-22T12:25:39+02:00 server/etcdserver/api: Add 3.6 to supported version - - 5d6be3483 2021-06-22T12:25:39+02:00 api/version/version.go: Fix the api version - - df696a7e7 2021-06-22T12:25:39+02:00 go.mod: Bump etcd to 3.5.0 - - f00231951 2021-06-21T11:47:53+02:00 contrib/mixin/mixin.libsonnet: Adjust gRPC failed requests - - 175e235bd 2021-06-18T09:34:25+08:00 Update Readme for install etcd client v3 more visibility - - 3adb2bd57 2021-06-17T18:45:56+08:00 Update Readme for Install etcd client v3 more visibility #13108 - - 09392c505 2021-06-17T18:42:42+08:00 Update Readme for install etcd client v3 more visibility #13108 - - 8bfce5dc0 2021-06-16T07:25:50Z Add option to generate junit xml reports - - 1a943350b 2021-06-15T19:47:22-07:00 client: README: update to new go.mod paths - - e1b1d9354 2021-06-14T16:36:50+02:00 *: Snapshot returns local etcd version - - 9a68ee51b 2021-06-10T17:05:19+02:00 CHANGELOG-3.5: Fix a typo, add dates - - 16477a827 2021-06-07T14:49:57+02:00 Update client_golang dependency to v1.11.0 - - 0d2dd291b 2021-06-06T14:58:49-07:00 tools: rw-heatmaps output format bug fix - - 8a0142c8b 2021-06-05T17:37:01-07:00 server: enable getting raft request from cache to avoid extra unmarshalling - - 5f73afb25 2021-06-04T15:17:48-07:00 CHANGELOG: etcdserver: don't attempt to grant nil permission to a role - - 115c694af 2021-06-04T14:20:02-07:00 etcdserver: don't attempt to grant nil permission to a role - - a26fa0c00 2021-06-04T12:19:06-07:00 CHANGELOG: etcdserver: don't activate alarm w/missing AlarmType - - 8552d8ec2 2021-06-04T12:18:56-07:00 etcdserver: don't activate alarm w/missing AlarmType - - d563c76e9 2021-06-04T13:53:09+02:00 client/v3/maintenance.go: Add Downgrade support to client - - fe2c05275 2021-06-03T22:46:47-07:00 tools: update mixed read/write perf testing script for a larger range of value size - - 11edc76b1 2021-06-03T12:58:42-07:00 server: skip unnecessary sprintf which executes proto.Size() - - 404efd70f 2021-06-03T16:07:01+02:00 Upgrade of prometheous deps. - - edcfe575c 2021-06-03T13:03:01+02:00 Update dependencies: - - b240625d2 2021-06-03T12:39:53+02:00 Update bbolt to v1.3.6. - - 90cea7d4e 2021-06-03T12:37:43+02:00 Update zap to v1.17.0. - - 576861e61 2021-06-03T16:36:19+08:00 embed: unlimit the recv msg size of grpc-gateway - - d3ae6f25d 2021-06-02T13:32:02-07:00 tools: fix small rw-heatmaps python plot script argument parsing bug - - 9e4dd4dc4 2021-06-02T10:29:35-07:00 updating scripts/genproto.sh - - af5cf1ac1 2021-06-02T16:42:35+02:00 tests: Switch regenerating functional/rpcpb proto to scripts/genproto.sh - - 3aae7d782 2021-06-02T16:35:12+02:00 client/v3/README.md: Remove warning - - ddd390af0 2021-06-02T11:41:26+02:00 raft/raft.go: Log unhandled errors - - 5e67b40a9 2021-06-02T11:41:26+02:00 raft/node.go: Log unhandled errors - - 65cdf43e4 2021-06-02T11:41:26+02:00 client/v3/lease.go: Log unhandled errors - - d669eb038 2021-06-01T15:59:02+02:00 integration: Use subtests to defer cluster.Terminate call - - 182aef6e6 2021-06-01T15:04:28+02:00 etcdserver: Fix invalid count returned on Range with Limit - - ea8b9e6c1 2021-05-31T15:31:48+02:00 Improve output of the 'functional' tests - - 312908c06 2021-05-31T10:25:37+02:00 tools/benchmark/README.md: Update installation as go get does not work - - f15e0b823 2021-05-27T20:55:11+02:00 integration.BeforeTest can be run without leak-detection. - - 0e496ca21 2021-05-27T22:49:41+08:00 TestLogRotation add log output relative path - - 24d8e90db 2021-05-27T16:44:12+08:00 [Fix]滚动日志路径解析不正确 - - 8389ab875 2021-05-26T20:38:49-07:00 tool: save test parameters in mixed read/write benchmark script. - - 2ab2b4035 2021-05-25T15:43:46-07:00 tools: no hardcoded repeat times in rw-benchmark scripts - - bda32db12 2021-05-25T22:59:08+02:00 Expose clientv3.CreateDefaultZapLoggerConfig - - db8ce6298 2021-05-25T13:30:56-07:00 tools: update mixed read/write benchmark script - - 79b277748 2021-05-25T12:03:42-07:00 tools: add mixed read-write performance evaluation scripts - - 9c82e8c72 2021-05-24T15:16:53-07:00 server: set multiple concurrentReadTx instances share one txReadBuffer. - - 64b01a7a8 2021-05-24T14:58:00-07:00 Enhance the root permission, when root role exist, it always return rootPerm. (#13006) - - 30a67850c 2021-05-24T13:30:09-04:00 CHANGELOG: add missing default setting for grpc gateway flag - - 2ca308969 2021-05-24T10:08:28+01:00 CHANGELOG: added missing entry for ClientCertFile - - 184b0e5d4 2021-05-24T16:22:00+08:00 add sleep interval - - 838be9c75 2021-05-21T21:25:49+08:00 Omit the blank line - - 2d2a95c3f 2021-05-21T21:23:38+08:00 Fix the format issue - - 1b700e5ed 2021-05-21T20:54:06+08:00 Fix the goroutine leak in StubServer --- - - facba6c66 2021-05-21T14:18:01+05:30 client: Replace nil value testing with assert.Nil - - 25d3c1b06 2021-05-21T13:28:43+05:30 *: Fixed go.sum - - ce5bb69c2 2021-05-20T21:44:12+05:30 client: Added missing packages - - 319ef4aa4 2021-05-20T21:33:07+05:30 client: Removed AssertEqual function - - d9c5e1f0a 2021-05-20T19:55:45+05:30 *: Replace internal testutil AssertEqual function in favour of github.com/stretchr/testify/assert.Equals - - 0ee2aba91 2021-05-20T13:41:41+02:00 .github/workflows/functional.yaml: Adjust to use new script - - b23ab1f75 2021-05-20T13:41:41+02:00 tests/functional: Require same version of protoc everwhere - - fe2a9bd7e 2021-05-20T13:41:41+02:00 Update go.mod and go.sum files after running scripts - - cb8c0a050 2021-05-20T13:41:41+02:00 tests/functional/rpcpb/rpc.pb.go: Regenerate - - 13bf7b076 2021-05-20T13:41:41+02:00 tests/functional: Set socket-reuse-port and socket-reuse-address - - e0e4ddc26 2021-05-20T10:00:27+02:00 test.sh: Reference test.sh instead of deprecated test - - 7957f4461 2021-05-20T10:00:27+02:00 server/embed/config_test.go: Add unit test for socket options - - 96a1efded 2021-05-19T17:51:51-07:00 Documentation/README simplification (#13007) - - 204e87cfb 2021-05-19T17:53:00-04:00 Correct typo - - 73c530de8 2021-05-19T18:41:21+02:00 client,server: Expose reuse-port and reuse-address so they can be - - 6d68f7841 2021-05-19T23:47:46+08:00 limit tx lock scope - - 6ab56fc23 2021-05-19T17:35:13+08:00 enhance GetRole output when role is 'root' and the response perm is nil. Before output: Role root KV Read: KV Write: - - 16d51d8c2 2021-05-19T02:08:53+02:00 Fix not retryable error codes from: Unavailable -> FailedPrecondition - - 0a972a3f0 2021-05-18T20:55:05+02:00 applyV2 should reapply on backend only once - - 66752fef2 2021-05-18T18:58:53+02:00 Represent bucket as object instead of []byte name. - - 86393ecfc 2021-05-18T07:16:28-04:00 scripts: add missing etcdutl to release pipeline - - 3dd577ec0 2021-05-18T13:03:16+02:00 Simplify client's logger configuration in tests. - - 41b325a71 2021-05-17T13:46:30-07:00 github/workflow: run arm64 tests for all branches startin from 3.5 - - 8e9b77a2c 2021-05-17T11:46:14-07:00 Update CHANGELOG-3.5.md - - 783c5ad2d 2021-05-17T11:45:54-07:00 use v2 api to update cluster version - - eebe67d87 2021-05-17T17:29:44+02:00 Rename seq to bucket2seq. - - 4a2ffc2cb 2021-05-17T17:08:00+02:00 Minor formatting fix on top of https://github.com/etcd-io/etcd/pull/12568 - - 79eafb971 2021-05-17T17:08:00+02:00 backend: set seq flag for each bucket buffer - - ebf461a7d 2020-12-30T16:05:42+08:00 backend: fix buffer range bug - -- machine-config-operator embedded-component 5c30302c9194aea91f2dec09f5620548809f1a74 to ca0c19decec85967d149661825b334d0fa5ad7a8 - - 1aa5e871 2025-11-12T14:23:25Z Filter extended tests by platform - - a9832bd1 2025-11-11T13:19:03-06:00 persist NIC device names on RHEL9 - - ef21e66e 2025-11-11T10:02:52-05:00 Ensure MOSC updates rolls out new image built to nodes - - 1aac42b2 2025-11-10T12:32:29-05:00 AWS ClusterHostedDNS: Fix IP address for AWS DNS resolution - - 9322b3ce 2025-11-10T12:30:01-05:00 Azure clusterHostedDNS: Fix IP address for Azure DNS resolution - - 5d6ee44e 2025-02-20T11:41:20+01:00 OCPBUGS-51041: Update nodeip-configuration.service service files to use SyslogIdentifier - -- operator-framework-olm embedded-component db55b14f1376e5620ccb846a32e18b46a5efa123 to d9496b7fafa32956655b40592761887bea8e9220 - - adc328ae 2025-11-13T00:04:55Z Upgrade dependencies; ocp/api*, kube-openapi and indirects (#3707) - -- csi-external-snapshotter image-amd64 15313fb28f5c42e4b896928478652768225692a6 to 9098db0e434e0d986eeadd2ebe69119540a550d1 - - 581c458 2025-11-10T13:46:26+01:00 UPSTREAM: : Add OpenShift files - - ff86d39 2025-10-23T11:23:04-04:00 Add changelog for v8.4 - - 2573990 2025-10-22T13:34:27-04:00 Update CSI spec to 1.12 - - b3dcf6b 2025-10-21T20:54:34-07:00 Squashed 'release-tools/' changes from 5f38a9075..74502e544 - - 0d9a187 2025-10-21T11:41:09+02:00 Add CEL test cases - - 5af2237 2025-10-14T15:01:03+02:00 Enforce immutability of VolumeGroupSnapshotContentSpec once set - - 3107987 2025-10-14T13:58:01+02:00 feat: use controller-gen deprecatedversion marker - - 6f22bc3 2025-10-08T10:52:03+02:00 fix: remove unused help functions - - 119cfa7 2025-10-08T09:04:45+02:00 Address API review comments - - 5521566 2025-09-25T13:45:26Z Bump actions/checkout from 4 to 5 - - 84447be 2025-09-25T11:49:24Z Bump actions/setup-go from 5 to 6 - - ce8ac62 2025-09-05T12:02:52-06:00 Replace diff.ObjectDiff (removed) with cmp.Diff - - 3a84f71 2025-09-04T15:47:38-06:00 Bump toolchain to go1.24.6 in go.mod - - 604a9ae 2025-09-04T15:14:37-06:00 Bump k8s dependencies to v1.34.0 - - e0348f9 2025-09-04T15:07:46-06:00 Squashed 'release-tools/' changes from 0a435bf98..5f38a9075 - - 389d076 2025-09-03T11:28:10+02:00 Add FG for restarting external-snapshotter faster by releasing leader election lease on sigterm - - 7935bd4 2025-09-01T10:25:06+02:00 go get k8s.io/apiserver/pkg/server@v0.33.2 && go mod tidy && go mod vendor - - 3dd71b2 2025-08-27T21:48:33+02:00 Clarify API comments - - d32f6e9 2025-08-27T09:37:33Z test: fix CVE-2025-47907 error in trivy action - - 1c9ffa5 2025-08-12T11:00:43+02:00 Remove reference to banzaicloud/admission-webhook-example - - 7cf9ba0 2025-08-08T13:27:21+02:00 Update CEL tests - - 4870d73 2025-08-08T13:20:40+02:00 Conversion webhook review - - ba5e7fa 2025-08-06T10:08:45+02:00 Drop support for v1beta1 ConversionReview requests - - 6815d03 2025-08-06T09:15:32+02:00 Remove stale validation webhook documentation, add paragraph about the conversion webhook - - 9ad300a 2025-08-05T15:20:59+02:00 Conversion webhook review - - d1f9f39 2025-08-05T14:09:33+02:00 Rename snapshot-webhook to snapshot-conversion-webhook - - c0c4750 2025-07-29T08:59:29+02:00 Conversion webhook - - c0e647a 2025-07-28T22:41:20+02:00 Set new fields in VolumeGroupSnapshotContent objects - - faf832b 2025-07-28T22:41:20+02:00 Use v1beta2 VolumeGroupSnapshot API instead of v1beta1 - - 67d2939 2025-07-28T22:40:11+02:00 Enable conversion webhook on CRDs - - 2c24dc7 2025-07-28T17:38:19+02:00 Introduce v1beta2 VolumeGroupSnapshot API - -- ovn-kubernetes image-amd64 07964833fe982d95f6376b7877b0e69279060f82 to 9a9b8929d7040ab7d8cf574c48c96d58991bf6f6 - - cfbc62e0 2025-11-06T14:16:47-05:00 Register EF with a network event handler - - 4c602aae 2025-11-06T13:50:30-05:00 Add ability in NetworkManager to register callbacks - - e18e1d20 2025-11-06T13:08:02+01:00 add lint target to run golanci natively - - 42668512 2025-11-05T18:56:24-05:00 Use a syncmap to store a cache of configured egress firewall - - 1122cdea 2025-11-05T18:56:24-05:00 Remove stale unit test - - ddf5a9d6 2025-11-05T18:56:24-05:00 Enable cluster exclusion for UDN with egress firewall - - 7def2dca 2025-11-05T18:56:24-05:00 Adds E2E test to make sure Egress FW works with UDN - - ecabc89d 2025-11-05T18:56:20-05:00 Refactor egress firewall into its own controller - - 16dedd15 2025-11-05T18:43:55+01:00 Fix cleanup of LRP for deleted pods - - 8975b00e 2025-11-05T18:43:55+01:00 Handle missing pod delete event in EIP controller - - 0a004f3b 2025-11-05T17:09:33+01:00 Status manager: add startup cleanup for ANP/BANP - - 5597bf8d 2025-11-05T16:54:09+01:00 Status manager: add startup cleanup for stale managedFields - - d9ae8733 2025-11-05T14:44:08+01:00 Status manager: fix cleanup for EgressQoS and NetworkQoS - - e3863d93 2025-11-05T12:21:42+01:00 Status manager: remove managedFields upon node deletion - - e3d9429b 2025-11-04T14:33:21-08:00 VF backed management port for primary udn - - 0284deaf 2025-11-04T13:26:22-08:00 provide uitity functions for management port creation/deletion - - 46c59ce7 2025-11-04T16:16:06+01:00 NetPol: Add more unit test coverage - - a75d853f 2025-11-04T16:16:06+01:00 MultiNetPol: Add more unit test coverage - - 8af6338b 2025-11-03T13:51:14+01:00 Bump OVN to 25.09. - - 460c8b19 2025-11-02T15:28:22+01:00 fix: add nil checks for probe interval fields for OVN 24.09 compatibility - - d24c6de8 2025-11-02T15:28:08+01:00 refactor: decouple OVN metrics from Kubernetes dependencies - - c4ec4752 2025-11-02T15:09:17+01:00 refactor: make OVN/OVS paths configurable via CLI and config file - - 1b3b3f6f 2025-10-27T16:21:23-07:00 no nft/ipt operation on dpu node - - b8e28eb4 2025-10-23T13:51:49+02:00 [okep] Add note on local-port tunnel keys. - -- oc image-arm64 0c09391d89b24f45dc606eee749e67d9b52c9f70 to 477520aad17d901faf3c41d89d9482980cba2f4c - - ad20eca6 2025-11-19T17:26:01+01:00 feat(login): extend --auto-open-browser to work with --web - -- router image-arm64 526b4d0ad4cd9d44b43e2585b3415e513fbaf3da to 61979f48e686cdccdf61a2825d0c558a5a391df1 - - 3fef05f 2025-11-19T09:28:14+01:00 OCPBUGS-60885: Add option abortonclose to HAProxy configuration template - -- kubernetes image-arm64 891f5bb0306166d5625b89fc8dc86bbc8c85f549 to 737c81eb7539786ccefc91ab54080c674c3ad78c - - 73f377501 2025-11-19T10:13:01+01:00 UPSTREAM: 135135: Update CSI manifests from csi-driver-hostpath master - - 729915144 2025-11-13T14:14:46+01:00 UPSTREAM: : re-enable volume group snaphot tests - - ce7269217 2025-11-10T13:48:37+01:00 UPSTREAM: 135135: Update CSI manifests from csi-driver-hostpath master - - 92148df30 2025-11-10T13:48:37+01:00 UPSTREAM: 135069: Update group snapshot tests to v1beta2 - -- service-ca-operator image-arm64 c5e7cf4a92ca76778c20defc14a823e097d0f15d to f090126bd306928d55e4f6b869c416e84c8f2689 - - 9438c48 2025-11-19T17:51:05+08:00 Update dependencies and vendor for simplified test infrastructure - - bd4527b 2025-11-19T17:27:28+08:00 Simplify test infrastructure to single-module architecture +- kubernetes image-arm64 737c81eb7539786ccefc91ab54080c674c3ad78c to f6c89d1c3286d2f58dff24c38cbb0eaedab00c4c + - df4ec5c73 2025-11-25T10:17:52-08:00 UPSTREAM: : hack/update-vendor.sh, make update and update image + - a27da674b 2025-11-25T10:17:52-08:00 UPSTREAM: : Remove update-test-annotations target + - b03745483 2025-11-25T10:17:45-08:00 UPSTREAM: : manually resolve conflicts + - 8cc511e39 2025-11-11T19:00:37+00:00 Release commit for Kubernetes v1.34.2 + - 97650c1c4 2025-11-06T18:48:24+00:00 Clean up event messages for errors in Portworx in-tree driver + - f4fd1e3a6 2025-11-06T07:53:57+00:00 kube-proxy/winkernel: fix stale RemoteEndpoints due to premature clearing of terminatedEndpoints map. + - fd812c5b0 2025-11-05T10:00:22+01:00 fix: allow job startTime updates on resume from suspended state + - b13733a65 2025-11-04T14:09:08+01:00 DRA allocator: Add the requests corresponding to the config FromClass + - aade7b8e8 2025-11-03T21:18:35-05:00 Fix spurious workload rollout due to null creationTimestamp in controller revisions + - 7c5ec38d1 2025-11-03T21:18:34-05:00 Remove unused and fragile revision hash comparisons + - d5ffe8903 2025-11-03T21:18:34-05:00 Add unit test detecting spurious statefulset rollout + - 50096b40c 2025-10-31T16:56:42-07:00 Do not log untolerated taint in pod status updates. + - 79ed9ffaa 2025-10-29T16:09:56+05:30 E2E volume: fix restarting of watch + - 011338f9e 2025-10-27T13:46:41-03:00 Return error in case of discovery client failure + - e1e4e2eb4 2025-10-25T01:20:04+08:00 etcd: bump etcd to v3.5.24 for k8s v1.31, v1.32, v1.33 + - a42f81f4b 2025-10-22T22:46:06+00:00 Fix startup probe worker termination for sidecar containers + - 60e3b5762 2025-10-20T13:34:04+02:00 kubeadm: add missing cluster-info context validation + - 30fd26640 2025-10-16T21:32:16+01:00 Do not validate etcd version for aggregated server conformance test + - f3b637f6c 2025-10-16T21:18:37+01:00 Bump etcd to v3.6.5 + - 6ebab3f18 2025-10-16T13:55:04-04:00 Include relevant dimensions in pod controller indexing + - 7191ffc39 2025-10-15T16:24:35+02:00 apply integration test: fix ordering test flake + - 8cd6b631c 2025-10-15T11:44:40+02:00 update setcap and debian-base to bookworm-v1.0.6 + - 2674d8a04 2025-10-15T11:44:00+02:00 Bump images, dependencies and versions to go 1.24.9 and distroless iptables + - bddc18b09 2025-10-14T09:36:50-04:00 Add integration test for invalid SAN certificate handling + - f40e4ce55 2025-10-14T09:35:42-04:00 Remove invalid SAN certificate construction + - ed6bf3e5d 2025-10-14T09:35:42-04:00 kubeadm preflight checks: fix host URL construction + - 5300f7a32 2025-10-11T01:25:59+00:00 change klog to log volume name instead of entire spec in GetDeviceMountPath + - 5be5dc9d5 2025-10-09T14:53:25-04:00 With new changes we will also have a VolumeModifying condition + - d74bd66e9 2025-10-09T15:31:58+05:30 authz tests: delay response in context cancelled scenario + - ea75d2aa0 2025-10-06T09:31:39+01:00 gce: Fix etcd manifest + - 61c0fb13a 2025-10-03T13:04:19+00:00 Disable SchedulerAsyncAPICalls feature gate due to a known regression + - 40899107c 2025-10-02T17:46:27+03:00 upgrade to cos 121 + - 2bfc98b31 2025-10-02T14:27:32+00:00 Update pod resize test to accept new cpu.weight conversion. + - 3ffc54a9e 2025-10-01T22:07:30+02:00 kubeadm: rework the FetchInitConfigurationFromCluster node flags + - e9f5e892f 2025-09-25T21:26:38+02:00 kubeadm: use JoinHostPort in WaitControlPlaneClient + - 663664c61 2025-09-25T15:57:55+02:00 kubeadm: ensure waiting for apiserver uses a local client + - 3f170932b 2025-09-24T15:01:03+00:00 Revert "Merge pull request #133213 from sanposhiho/second-trial-conor" + - 09ddc5ebb 2025-09-23T15:23:17+02:00 Bump images, dependencies and versions to go 1.24.7 and distroless iptables + - b245b551f 2025-09-20T17:05:18+05:30 Split preemption integration tests to mitigate the timeout + - 560cc36db 2025-09-18T18:19:44+03:00 fix incorrect warning whenever headless service is created/updated + - 07ac83c14 2025-09-17T09:59:14-07:00 fix: use iifname for input interface name matches + - 35b87e4c1 2025-09-16T11:12:13-04:00 Wait for quota to report used before creating pvc + - 856ac4923 2025-09-16T23:06:52+08:00 release-1.34: pin system-validators to v1.10.2 + - 7d43ddbbf 2025-09-11T21:47:13-07:00 Fix ClusterIP load balancer disappearing when InternalTrafficPolicy: Local is set. + - 4a40ddf1e 2025-09-10T15:57:45-07:00 gofmt and review feedback + - 4ae3b64b7 2025-09-10T15:57:45-07:00 fix: Update unit test to catch actual nil Labels case and fix functionality to handle nil Labels + - 16e3f7c17 2025-09-09T20:00:28+00:00 Update CHANGELOG/CHANGELOG-1.34.md for v1.34.1 + - 988bdd125 2025-09-09T11:49:26+02:00 Do not remove PVC ClaimRef to fix flaky VAC test + - b97399727 2025-09-08T20:36:06+02:00 DRA kubelet: avoid deadlock when gRPC connection to driver goes idle + - 76ab5f066 2025-09-05T14:54:05+08:00 kubelet/metrics: fix multiple Register call + - 04fd1ada6 2025-09-05T14:54:05+08:00 kubelet/metrics: misc optimization diff --git a/scripts/auto-rebase/commits.txt b/scripts/auto-rebase/commits.txt index 4116d13fe9..8506e0faa7 100644 --- a/scripts/auto-rebase/commits.txt +++ b/scripts/auto-rebase/commits.txt @@ -1,35 +1,35 @@ -https://github.com/openshift/api embedded-component 6711368ea523ea381dafeed164584cb78a7cd129 -https://github.com/openshift/cluster-csi-snapshot-controller-operator embedded-component 588e532f520b71a0ce995a48f38294b9c4bb1e26 -https://github.com/openshift/cluster-dns-operator embedded-component 2ec8a3de79d73760abbccdbcbbf9951fc93097cd -https://github.com/openshift/cluster-ingress-operator embedded-component 8773f8f65be6da42fadbae9b358e082efec8fca5 +https://github.com/openshift/api embedded-component 1ef028d1e4ba105d95d9c8a0307adef2e4f55775 +https://github.com/openshift/cluster-csi-snapshot-controller-operator embedded-component 40c913a6a7745310e443592ba8d4cddd76176e09 +https://github.com/openshift/cluster-dns-operator embedded-component 41a53fed36e6e99c7c9ceb3a699c3547ee5d9bb9 +https://github.com/openshift/cluster-ingress-operator embedded-component efab5661851e5fe5a37b62456ecac4284c4b15bc https://github.com/openshift/cluster-kube-apiserver-operator embedded-component 151f2be4e47cc3826b266b16066829f3f4e16a98 https://github.com/openshift/cluster-kube-controller-manager-operator embedded-component e1cdb251d9ef7e74265bb7c8884a47cc0803068b https://github.com/openshift/cluster-kube-scheduler-operator embedded-component 04cb35e0397a3261e783a311b3b8590b8839ea2d -https://github.com/openshift/cluster-network-operator embedded-component d1321fa72db4d149e87a70385db2841e25e68e12 +https://github.com/openshift/cluster-network-operator embedded-component fda7a9f07ab6f78d032d310cdd77f21d04f1289a https://github.com/openshift/cluster-openshift-controller-manager-operator embedded-component 12b7668d70bdb07d5d05304a7bcaeb6a5cc5ef3b -https://github.com/openshift/cluster-policy-controller embedded-component ef703966fe6e82f5f255b06bc5c758f105bf8b28 +https://github.com/openshift/cluster-policy-controller embedded-component 8b775487512fb543bff470ff1042bd3ac31b29be https://github.com/openshift/csi-external-snapshotter embedded-component 9098db0e434e0d986eeadd2ebe69119540a550d1 https://github.com/openshift/etcd embedded-component 806f690e1f140e0aea2eb05ef5f288b756b62895 -https://github.com/openshift/kubernetes embedded-component 891f5bb0306166d5625b89fc8dc86bbc8c85f549 +https://github.com/openshift/kubernetes embedded-component 737c81eb7539786ccefc91ab54080c674c3ad78c https://github.com/openshift/kubernetes-kube-storage-version-migrator embedded-component ce5ff17e9a81ce754567e6dd5053d13409c251e9 -https://github.com/openshift/machine-config-operator embedded-component ca0c19decec85967d149661825b334d0fa5ad7a8 +https://github.com/openshift/machine-config-operator embedded-component 4a3b43b9ac4750af612c2cb748f0383ce7d47430 https://github.com/openshift/openshift-controller-manager embedded-component 433bd500afb879dd82e27336359cd4e3051245b0 -https://github.com/openshift/operator-framework-olm embedded-component d9496b7fafa32956655b40592761887bea8e9220 +https://github.com/openshift/operator-framework-olm embedded-component c2753896aecfd5b17c7cf5430b9a27abcbeab485 https://github.com/openshift/route-controller-manager embedded-component 8a69194a461dc33d2ed67a220bca91d384d34df4 -https://github.com/openshift/service-ca-operator embedded-component c5e7cf4a92ca76778c20defc14a823e097d0f15d -https://github.com/openshift/oc image-amd64 0c09391d89b24f45dc606eee749e67d9b52c9f70 +https://github.com/openshift/service-ca-operator embedded-component f5a143a6e0d2110f8c0fc8b50dc8fa62ec26b291 +https://github.com/openshift/oc image-amd64 8642d882f16de34a033ac4ac19dfde866c7a523f https://github.com/openshift/coredns image-amd64 91ae57f91e0bba5fc4fdb816e1f1cea633b3a8b5 https://github.com/openshift/csi-external-snapshotter image-amd64 9098db0e434e0d986eeadd2ebe69119540a550d1 -https://github.com/openshift/router image-amd64 526b4d0ad4cd9d44b43e2585b3415e513fbaf3da +https://github.com/openshift/router image-amd64 61979f48e686cdccdf61a2825d0c558a5a391df1 https://github.com/openshift/kube-rbac-proxy image-amd64 cd636680e06a55395c26570dff0cb37277014388 https://github.com/openshift/ovn-kubernetes image-amd64 9a9b8929d7040ab7d8cf574c48c96d58991bf6f6 -https://github.com/openshift/kubernetes image-amd64 891f5bb0306166d5625b89fc8dc86bbc8c85f549 -https://github.com/openshift/service-ca-operator image-amd64 c5e7cf4a92ca76778c20defc14a823e097d0f15d -https://github.com/openshift/oc image-arm64 477520aad17d901faf3c41d89d9482980cba2f4c -https://github.com/openshift/coredns image-arm64 91ae57f91e0bba5fc4fdb816e1f1cea633b3a8b5 +https://github.com/openshift/kubernetes image-amd64 737c81eb7539786ccefc91ab54080c674c3ad78c +https://github.com/openshift/service-ca-operator image-amd64 f5a143a6e0d2110f8c0fc8b50dc8fa62ec26b291 +https://github.com/openshift/oc image-arm64 02aba637a54c5d1317b5c284e213d7a85d64d6bb +https://github.com/openshift/coredns image-arm64 7486e9e4330c1e41d9a91e4673b7f2782efc112c https://github.com/openshift/csi-external-snapshotter image-arm64 9098db0e434e0d986eeadd2ebe69119540a550d1 -https://github.com/openshift/router image-arm64 61979f48e686cdccdf61a2825d0c558a5a391df1 +https://github.com/openshift/router image-arm64 0e388de223c63d7ea8e735c9bfaa05be2cc01717 https://github.com/openshift/kube-rbac-proxy image-arm64 cd636680e06a55395c26570dff0cb37277014388 -https://github.com/openshift/ovn-kubernetes image-arm64 9a9b8929d7040ab7d8cf574c48c96d58991bf6f6 -https://github.com/openshift/kubernetes image-arm64 737c81eb7539786ccefc91ab54080c674c3ad78c -https://github.com/openshift/service-ca-operator image-arm64 f090126bd306928d55e4f6b869c416e84c8f2689 +https://github.com/openshift/ovn-kubernetes image-arm64 dc442479932a9173cc16317d114bc54bd945f04c +https://github.com/openshift/kubernetes image-arm64 f6c89d1c3286d2f58dff24c38cbb0eaedab00c4c +https://github.com/openshift/service-ca-operator image-arm64 e9622ba18c86bf24aceab0c19fdcb87339c14f44 diff --git a/scripts/auto-rebase/last_rebase.sh b/scripts/auto-rebase/last_rebase.sh index 0f085a011d..1aaa671e3c 100755 --- a/scripts/auto-rebase/last_rebase.sh +++ b/scripts/auto-rebase/last_rebase.sh @@ -1,2 +1,2 @@ #!/bin/bash -x -./scripts/auto-rebase/rebase.sh to "registry.ci.openshift.org/ocp/release:4.21.0-0.nightly-2025-11-15-144034" "registry.ci.openshift.org/ocp-arm64/release-arm64:4.21.0-0.nightly-arm64-2025-11-20-233918" +./scripts/auto-rebase/rebase.sh to "registry.ci.openshift.org/ocp/release:4.21.0-0.nightly-2025-11-22-193140" "registry.ci.openshift.org/ocp-arm64/release-arm64:4.21.0-0.nightly-arm64-2025-11-28-004554" diff --git a/scripts/auto-rebase/rebase.py b/scripts/auto-rebase/rebase.py index c9839e5247..b8da1effae 100755 --- a/scripts/auto-rebase/rebase.py +++ b/scripts/auto-rebase/rebase.py @@ -16,14 +16,12 @@ from pathlib import Path from timeit import default_timer as timer -from git import PushInfo, Repo # GitPython -from github import Github, GithubException, GithubIntegration # pygithub - -APP_ID_ENV = "APP_ID" # GitHub App's ID -KEY_ENV = "KEY" # Path to GitHub App's key -PAT_ENV = "TOKEN" # Personal Access Token -ORG_ENV = "ORG" -REPO_ENV = "REPO" +from github import GithubException # pygithub + +sys.path.append(str(Path(__file__).resolve().parent / '../pyutils')) +import gitutils # noqa: E402 +import ghutils # noqa: E402 + AMD64_RELEASE_ENV = "AMD64_RELEASE" ARM64_RELEASE_ENV = "ARM64_RELEASE" RHOAI_RELEASE_ENV = "RHOAI_RELEASE" @@ -37,9 +35,6 @@ BOT_REMOTE_NAME = "bot-creds" REMOTE_ORIGIN = "origin" -# List of reviewers to always request review from -REVIEWERS = [] - # If True, then just log action such as branch push and PR or comment creation REMOTE_DRY_RUN = False @@ -144,28 +139,13 @@ def run_rebase_cert_manager_sh(release): return RebaseScriptResult(success=result.returncode == 0, output=result.stdout) -def commit_str(commit): - """Returns the first 8 characters of the commit's SHA hash and the commit summary.""" - return f"{commit.hexsha[:8]} - {commit.summary}" - - -def get_installation_access_token(app_id, key_path, org, repo): - """Get a installation access token for a GitHub App installation.""" - integration = GithubIntegration(app_id, Path(key_path).read_text(encoding='utf-8')) - app_installation = integration.get_installation(org, repo) - if app_installation is None: - sys.exit(f"Failed to get app_installation for {org}/{repo}. " + - f"Response: {app_installation.raw_data}") - return integration.get_access_token(app_installation.id).token - - def make_sure_rebase_script_created_new_commits_or_exit(git_repo, base_branch): """Exit the script if the 'rebase.sh' script did not create any new commits.""" if git_repo.active_branch.commit == git_repo.branches[base_branch].commit: logging.info(f"There's no new commit on branch {git_repo.active_branch} compared to '{base_branch}' " "meaning that the rebase.sh script didn't create any commits and " "MicroShift is already rebased on top of given release.\n" - f"Last commit: {commit_str(git_repo.active_branch.commit)}") + f"Last commit: {gitutils.commit_str(git_repo.active_branch.commit)}") sys.exit(0) @@ -199,106 +179,6 @@ def rebase_script_made_changes_considered_functional(git_repo, base_branch): return False -def get_remote_with_token(git_repo, token, org, repo): - """ - Returns the Git remote for the given repository using - the provided installation (or personal) access token. - """ - remote_url = f"https://x-access-token:{token}@github.com/{org}/{repo}" - try: - remote = git_repo.remote(BOT_REMOTE_NAME) - remote.set_url(remote_url) - except ValueError: - git_repo.create_remote(BOT_REMOTE_NAME, remote_url) - - return git_repo.remote(BOT_REMOTE_NAME) - - -def try_get_rebase_branch_ref_from_remote(remote, branch_name): - """ - Get the reference for the given branch on the specified Git remote, - otherwise return None if the branch does not exist. - """ - remote.fetch() - matching_remote_refs = [ref for ref in remote.refs if BOT_REMOTE_NAME + "/" + branch_name == ref.name] - - if len(matching_remote_refs) == 0: - logging.info(f"Branch '{branch_name}' does not exist on remote") - return None - - if len(matching_remote_refs) > 1: - matching_branches = ", ".join([r.name for r in matching_remote_refs]) - logging.warning(f"Found more than one branch matching '{branch_name}' " + - f"on remote: {matching_branches}. Taking first one") - _extra_msgs.append(f"Found more than one branch matching '{branch_name}' " + - f"on remote: {matching_branches}.") - return matching_remote_refs[0] - - if len(matching_remote_refs) == 1: - logging.info(f"Branch '{branch_name}' already exists on remote") - return matching_remote_refs[0] - - return None - - -def is_local_branch_based_on_newer_base_branch_commit(git_repo, base_branch_name, remote_branch_name, local_branch_name): - """ - Compares local and remote rebase branches by looking at their start on base branch. - Returns True if local branch starts on newer commit and needs to be pushed to remote, - otherwise False. - """ - remote_merge_base = git_repo.merge_base(base_branch_name, remote_branch_name) - local_merge_base = git_repo.merge_base(base_branch_name, local_branch_name) - - if remote_merge_base[0] == local_merge_base[0]: - logging.info("Remote branch is up to date. " + - f"Branch-off commit: {commit_str(remote_merge_base[0])}") - return False - - logging.info( - f"Remote branch is older - it needs updating. " - f"Remote branch is on top of {base_branch_name}'s commit: '{commit_str(remote_merge_base[0])}'. " - f"Local branch is on top of {base_branch_name}'s commit '{commit_str(local_merge_base[0])}'" - ) - return True - - -def try_get_pr(gh_repo, org, base_branch, branch_name): - """ - Try to get a pull request for a branch on a GitHub repository. - Returns - - The pull request if it exists and is open, otherwise None. - - If more than one pull request is found, then the first one will be used. - """ - prs = gh_repo.get_pulls(base=base_branch, head=f"{org}:{branch_name}", state="all") - - if prs.totalCount == 0: - logging.info(f"PR for branch {branch_name} does not exist yet on {gh_repo.full_name}") - return None - - pull_req = None - if prs.totalCount > 1: - pull_req = prs[0] - logging.warning( - f"Found more than one PR for branch {branch_name} on {gh_repo.full_name} -" + - f"this is unexpected, continuing with first one of: {[(x.state, x.html_url) for x in prs]}" - ) - - if prs.totalCount == 1: - pull_req = prs[0] - logging.info(f"Found PR #{pull_req.number} for branch {branch_name} on {gh_repo.full_name}: {pull_req.html_url}") - - if pull_req.state == 'closed': - logging.warning(f"PR #{pull_req.number} is not open - new PR will be created") - if pull_req.is_merged(): - logging.warning(f"PR #{pull_req.number} for '{branch_name}' branch is already merged but rebase.sh produced results") - _extra_msgs.append(f"PR #{pull_req.number} for '{branch_name}' was already merged but rebase.sh produced results") - else: - _extra_msgs.append(f"PR #{pull_req.number} for '{branch_name}' exists already but was closed") - return None - return pull_req - - def generate_pr_description(amd_tag, arm_tag, prow_job_url, rebase_script_succeded): # pylint: disable=unused-argument """ Returns a string that represents the body of a pull request (PR) description. @@ -337,79 +217,6 @@ def generate_pr_description(amd_tag, arm_tag, prow_job_url, rebase_script_succed else "# rebase.sh failed - check committed rebase_sh.log\n\n" + base) -def create_pr(gh_repo, base_branch, branch_name, title, desc): - """ - Creates a pull request (and requests reviews) for a given branch on a GitHub repository. - If the `REMOTE_DRY_RUN` variable is True, it logs the PR creation request without actually creating it. - """ - if REMOTE_DRY_RUN: - logging.info(f"[DRY RUN] Create PR: branch='{branch_name}', title='{title}', desc='{desc}'") - logging.info(f"[DRY RUN] Requesting review from {REVIEWERS}") - return None - - pull_req = gh_repo.create_pull( - title=title, body=desc, base=base_branch, head=branch_name, maintainer_can_modify=True) - logging.info(f"Created pull request: {pull_req.html_url}") - try: - pull_req.create_review_request(reviewers=REVIEWERS) - logging.info(f"Requested review from {REVIEWERS}") - except GithubException as err: - logging.info(f"Failed to request review from {REVIEWERS} because: {err}") - return pull_req - - -def update_pr(pull_req, title, desc): - """Updates the title and description of a pull request on a GitHub repository.""" - if REMOTE_DRY_RUN: - logging.info(f"[DRY RUN] Update PR #{pull_req.number}: {title}\n{desc}") - return - - pull_req.edit(title=title, body=desc) - pull_req.update() # arm64 release or prow job url might've changed - logging.info(f"Updated PR #{pull_req.number}: {title}\n{desc}") - - -def post_comment(pull_req, comment=""): - """ - Posts a comment on a GitHub pull request with - the contents of the global `_extra_msgs` list. - """ - if len(_extra_msgs) != 0: - if comment != "": - comment += "\n\n" - comment += "Extra messages:\n - " + "\n - ".join(_extra_msgs) - - if comment.strip() != "": - logging.info(f"Comment to post: {comment}") - if REMOTE_DRY_RUN: - logging.info("[DRY RUN] Posted a comment") - return - issue = pull_req.as_issue() - issue.create_comment(comment) - else: - logging.info("No content for comment") - - -def push_branch_or_die(remote, branch_name): - """ - Attempts to push a branch to a remote Git repository, - and terminates the program if the push fails. - """ - if REMOTE_DRY_RUN: - logging.info(f"[DRY RUN] git push --force {branch_name}") - return - - # TODO add retries - push_result = remote.push(branch_name, force=True) - - if len(push_result) != 1: - sys.exit(f"Unexpected amount ({len(push_result)}) of items in push_result: {push_result}") - if push_result[0].flags & PushInfo.ERROR: - sys.exit(f"Pushing branch failed: {push_result[0].summary}") - if push_result[0].flags & PushInfo.FORCED_UPDATE: - logging.info(f"Branch '{branch_name}' existed and was updated (force push)") - - def get_release_tag(release): """ Given a release string in the format "abc:xyz", returns the "xyz" portion of the string. @@ -462,26 +269,6 @@ def get_expected_branch_name(amd, arm): return f"rebase-{match_amd['version_stream']}_amd64-{match_amd['date']}_arm64-{match_arm['date']}" -def get_base_branch_name(gh_repo, base_branch): - """ - Given a branch name, determine if the rebase branch should be the same - or it should target main, depending on the current stage in the dev cycle. - """ - issues = gh_repo.get_issues(state="open") - for issue in issues: - title = issue.title - if title.startswith("Future Release Branches Frozen For Merging"): - try: - branches_part = title.split('|', 1)[1].strip() - branch_tokens = branches_part.split() - if f"branch:{base_branch}" in branch_tokens: - return "main" - except Exception as e: - logging.warning(f"Failed to parse freeze issue title: {title} ({e})") - continue - return base_branch - - def cleanup_branches(gh_repo): """ Deletes branches with names in the format "rebase-4*" that are @@ -512,29 +299,11 @@ def cleanup_branches(gh_repo): _extra_msgs.append("Deleted following branches: " + ", ".join(deleted_branches)) -def get_token(org, repo): - """ - Returns a token to be used with GitHub API. - It's either Personal Access Token if TOKEN env is set, - or Installation Access Token which is intended to be used with GitHub Apps. - """ - personal_access_token = try_get_env(PAT_ENV, die=False) - if personal_access_token != "": - logging.info("Using Personal Access Token to access GitHub API") - return personal_access_token - - app_id = try_get_env(APP_ID_ENV) - key_path = try_get_env(KEY_ENV) - return get_installation_access_token(app_id, key_path, org, repo) - - def main(): """ The main function of the script. Reads environment variables, retrieves the necessary information from GitHub, performs a rebase, creates a pull request, and cleans up old branches. """ - org = try_get_env(ORG_ENV) - repo = try_get_env(REPO_ENV) release_amd = try_get_env(AMD64_RELEASE_ENV) release_arm = try_get_env(ARM64_RELEASE_ENV) rhoai_release = try_get_env(RHOAI_RELEASE_ENV) @@ -547,11 +316,9 @@ def main(): if REMOTE_DRY_RUN: logging.info("Dry run mode") - token = get_token(org, repo) - gh_repo = Github(token).get_repo(f"{org}/{repo}") - git_repo = Repo('.') + g = gitutils.GitUtils(dry_run=REMOTE_DRY_RUN) base_branch = ( - git_repo.active_branch.name + g.git_repo.active_branch.name if base_branch_override == "" else base_branch_override ) @@ -565,8 +332,8 @@ def main(): if rebases_succeeded: # TODO How can we inform team that rebase job ran successfully just there was nothing new? - make_sure_rebase_script_created_new_commits_or_exit(git_repo, base_branch) - if rebase_script_made_changes_considered_functional(git_repo, base_branch): + make_sure_rebase_script_created_new_commits_or_exit(g.git_repo, base_branch) + if rebase_script_made_changes_considered_functional(g.git_repo, base_branch): logging.info("Detected functional changes made by rebase script - proceeding with creating PR") else: logging.info("Rebase did not produce any change considered to be functional - quitting") @@ -580,47 +347,48 @@ def main(): "rebase_ai_model_serving.sh:\n" + f"{ai_rebase_result.output}") writer.write(output) - if git_repo.active_branch.name == base_branch: + if g.git_repo.active_branch.name == base_branch: # rebase.sh didn't reach the step that would create a branch # so script needs to create it - branch = git_repo.create_head(get_expected_branch_name(release_amd, release_arm)) - branch.checkout() - git_repo.git.add(A=True) - git_repo.index.commit("rebase.sh failure artifacts") + g.checkout_branch(get_expected_branch_name(release_amd, release_arm)) + g.add_files_to_staging_area(all=True) + g.commit("rebase.sh failure artifacts") - rebase_branch_name = git_repo.active_branch.name - adjusted_base_branch = get_base_branch_name(gh_repo, base_branch) + gh = ghutils.GithubUtils(dry_run=REMOTE_DRY_RUN) + + rebase_branch_name = g.git_repo.active_branch.name + adjusted_base_branch = "main" if gh.is_branch_under_active_development(base_branch) else base_branch logging.info(f"Adjusted base branch: {adjusted_base_branch}") - git_remote = get_remote_with_token(git_repo, token, org, repo) - remote_branch = try_get_rebase_branch_ref_from_remote(git_remote, rebase_branch_name) # {BOT_REMOTE_NAME}/{rebase_branch_name} + + g.setup_remote_with_token(gh.token, gh.org, gh.repo) + remote_branch = g.get_remote_branch(rebase_branch_name) # {BOT_REMOTE_NAME}/{rebase_branch_name} rbranch_does_not_exists = remote_branch is None rbranch_exists_and_needs_update = ( remote_branch is not None and - is_local_branch_based_on_newer_base_branch_commit(git_repo, adjusted_base_branch, remote_branch.name, rebase_branch_name) + g.is_local_branch_based_on_newer_base_branch_commit(adjusted_base_branch, remote_branch.name, rebase_branch_name) ) if rbranch_does_not_exists or rbranch_exists_and_needs_update: - push_branch_or_die(git_remote, rebase_branch_name) + g.push(rebase_branch_name) prow_job_url = try_create_prow_job_url() pr_title = create_pr_title(rebase_branch_name, rebase_result.success) desc = generate_pr_description(get_release_tag(release_amd), get_release_tag(release_arm), prow_job_url, rebase_result.success) comment = "" - pull_req = try_get_pr(gh_repo, org, adjusted_base_branch, rebase_branch_name) + pull_req = gh.get_existing_pr_for_a_branch(adjusted_base_branch, rebase_branch_name) if pull_req is None: - pull_req = create_pr(gh_repo, adjusted_base_branch, rebase_branch_name, pr_title, desc) + pull_req = gh.create_pr(adjusted_base_branch, rebase_branch_name, pr_title, desc) else: - update_pr(pull_req, pr_title, desc) + gh.update_pr(pull_req, pr_title, desc) comment = f"Rebase job updated the branch\n{desc}" if adjusted_base_branch == "main": - cleanup_branches(gh_repo) - post_comment(pull_req, comment) + cleanup_branches(gh.gh_repo) - post_comment(pull_req, '/verified by automatic-rebase') + gh.post_comment(pull_req, comment, _extra_msgs) - git_remote.remove(git_repo, BOT_REMOTE_NAME) + g.remove_remote_with_token() sys.exit(0 if rebases_succeeded else 1) diff --git a/scripts/auto-rebase/rebase.sh b/scripts/auto-rebase/rebase.sh index 4be0a37907..e58cd2cdff 100755 --- a/scripts/auto-rebase/rebase.sh +++ b/scripts/auto-rebase/rebase.sh @@ -457,6 +457,7 @@ update_go_mod() { require_using_component_commit github.com/openshift/route-controller-manager route-controller-manager require_using_component_commit github.com/openshift/cluster-policy-controller cluster-policy-controller + make update-gofmt if grep -q "^patch-deps:" ./Makefile; then # etcd/ does not need to patch the dependencies make patch-deps @@ -518,7 +519,6 @@ handle_deps() { git clone "${repo_url}" --branch "${ver}" "${REPOROOT}/${replace_path}" rm -fr "${REPOROOT}/${replace_path}/.git" find "${REPOROOT}/${replace_path}/" -name "OWNERS" -delete - make update-gofmt ;; kubernetes-version) local -r ver="$(get_kubernetes_version)" @@ -527,7 +527,6 @@ handle_deps() { ;; esac - make update-gofmt # Following file is always generating a diff because it has CRLF line endings, but `git add` updates it to LF and the diff is gone. # Remove the problematic file once for all. rm -f deps/github.com/openshift/kubernetes/vendor/github.com/MakeNowJust/heredoc/README.md || true @@ -1243,23 +1242,20 @@ rebase_to() { title "## Committing changes to ${dirname}/go.mod" git add "${dirpath}/go.mod" "${dirpath}/go.sum" git commit -m "update ${dirname}/go.mod" + fi - title "## Updating deps/ directory" - if [[ -n "$(git status -s "${dirpath}/deps")" ]]; then - title "## Commiting changes to ${dirname}/deps directory" - git add "${dirpath}/deps" - git commit -m "update ${dirname}/deps" - fi + if [[ -n "$(git status -s "${dirpath}/deps")" ]]; then + title "## Commiting changes to ${dirname}/deps directory" + git add "${dirpath}/deps" + git commit -m "update ${dirname}/deps" + fi - title "## Updating ${dirname}/vendor directory" - pushd "${dirpath}" && make vendor && popd || exit 1 - if [[ -n "$(git status -s "${dirpath}/vendor")" ]]; then - title "## Commiting changes to ${dirname}/vendor directory" - git add "${dirpath}/vendor" - git commit -m "update ${dirname}/vendor" - fi - else - echo "No changes in ${dirname}/go.mod." + title "## Updating ${dirname}/vendor directory" + pushd "${dirpath}" && make vendor && popd || exit 1 + if [[ -n "$(git status -s "${dirpath}/vendor")" ]]; then + title "## Commiting changes to ${dirname}/vendor directory" + git add "${dirpath}/vendor" + git commit -m "update ${dirname}/vendor" fi done diff --git a/scripts/pyutils/create-venv.sh b/scripts/pyutils/create-venv.sh new file mode 100755 index 0000000000..ed1b19f04d --- /dev/null +++ b/scripts/pyutils/create-venv.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# shellcheck disable=all +set -o nounset +set -o errexit +set -o pipefail + +SCRIPT_DIR="$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")" +ROOT_DIR=$(realpath "${SCRIPT_DIR}/../..") +DEFAULT_DEST_DIR="${ROOT_DIR}/_output/pyutils" +DEST_DIR="${DEST_DIR:-${DEFAULT_DEST_DIR}}" + +if [ ! -d "${DEST_DIR}" ]; then + echo "Setting up virtualenv in ${DEST_DIR}" + python3 -m venv "${DEST_DIR}" + "${DEST_DIR}/bin/python3" -m pip install --upgrade pip + "${DEST_DIR}/bin/python3" -m pip install -r "${SCRIPT_DIR}/requirements.txt" +fi diff --git a/scripts/pyutils/ghutils.py b/scripts/pyutils/ghutils.py new file mode 100644 index 0000000000..ca6ee128a5 --- /dev/null +++ b/scripts/pyutils/ghutils.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 + +import os +import logging +import sys +from pathlib import Path +from github import GithubIntegration, Github + +APP_ID_ENV = "APP_ID" # GitHub App's ID +KEY_ENV = "KEY" # Path to GitHub App's key +PAT_ENV = "GH_TOKEN" # Personal Access Token + +ORG_ENV = "ORG" +_DEFAULT_ORG = "openshift" +REPO_ENV = "REPO" +_DEFAULT_REPO = "microshift" + + +class GithubUtils: + def __init__(self, dry_run=False): + self.dry_run = dry_run + self.org, self.repo = self._get_org_repo_from_env() + self.token = self._get_gh_token_from_env() + self.gh_repo = Github(self.token).get_repo(f"{self.org}/{self.repo}") + + def _get_org_repo_from_env(self) -> tuple[str, str]: + if self.dry_run: + logging.info(f"[DRY RUN] Using default org and repo: {_DEFAULT_ORG}/{_DEFAULT_REPO}") + return _DEFAULT_ORG, _DEFAULT_REPO + return try_get_env(ORG_ENV, default=_DEFAULT_ORG), try_get_env(REPO_ENV, default=_DEFAULT_REPO) + + def _get_gh_token_from_env(self) -> str: + """ + Returns a token to be used with GitHub API. + It's either Personal Access Token if TOKEN env is set, + or Installation Access Token which is intended to be used with GitHub Apps. + """ + personal_access_token = try_get_env(PAT_ENV) + if personal_access_token != "": + logging.info("Using Personal Access Token to access GitHub API") + return personal_access_token + + app_id = try_get_env(APP_ID_ENV, die=True) + key_path = try_get_env(KEY_ENV, die=True) + integration = GithubIntegration(app_id, Path(key_path).read_text(encoding='utf-8')) + app_installation = integration.get_repo_installation(self.org, self.repo) + if app_installation is None: + sys.exit(f"Failed to get app_installation for {self.org}/{self.repo}. " + + f"Response: {app_installation.raw_data}") + return integration.get_access_token(app_installation.id).token + + def is_branch_under_active_development(self, branch): + """ + Checks title of the issue #1239 in the openshift/microshift repository to check if + given branch is frozen and thus under active development is happening on main branch. + + It returns True if given branch is the first on the list of frozen branches. + In such case the target (base) branch of newly created PR should be switch to main. + """ + if self.dry_run: + logging.info(f"[DRY RUN] Assuming branch {branch} is under active development") + return True + + issue = self.gh_repo.get_issue(number=1239) + title = issue.title + try: + branches_part = title.split('|', 1)[1].strip() + frozen_branches = [x.replace('branch:', '') for x in branches_part.split()] + if len(frozen_branches) == 0: + raise Exception(f"Unexpected amount of branch in the Issue 1239 title: {title}") + # Assuming the first branch name is the release under development right now. + # No job creating PRs should run against the next release branch. + return branch == frozen_branches[0] + except Exception as e: + raise RuntimeError(f"Failed to parse freeze issue title: {title} ({e})") + + def create_pr(self, base_branch, branch_name, title, desc): + """Create a Pull Request""" + if self.dry_run: + logging.info(f"[DRY RUN] Create PR: {base_branch=} <- {branch_name=}: {title=} {desc=}") + return None + + if (self.org == _DEFAULT_ORG and self.repo == _DEFAULT_REPO and + self.is_branch_under_active_development(base_branch)): + base_branch = "main" + + pull_req = self.gh_repo.create_pull( + title=title, body=desc, base=base_branch, head=branch_name, maintainer_can_modify=True) + logging.info(f"Created pull request: {pull_req.html_url}") + return pull_req + + def update_pr(self, pull_req, title, desc): + """Updates the title and description of a pull request on a GitHub repository.""" + if self.dry_run: + logging.info(f"[DRY RUN] Update PR #{pull_req.number}: {title}\n{desc}") + return + + pull_req.edit(title=title, body=desc) + pull_req.update() # arm64 release or prow job url might've changed + logging.info(f"Updated PR #{pull_req.number}: {title}\n{desc}") + + def post_comment(self, pull_req, comment="", extra_msgs=[]): + """Post a comment on a Pull Request with the contents of the extra_msgs list.""" + if self.dry_run: + logging.info(f"[DRY RUN] Post comment: {comment}") + return + + if len(extra_msgs) != 0: + if comment != "": + comment += "\n\n" + comment += "Extra messages:\n - " + "\n - ".join(extra_msgs) + + if comment.strip() != "": + logging.info(f"Comment to post: {comment}") + if self.dry_run: + logging.info("[DRY RUN] Posted a comment") + return + issue = pull_req.as_issue() + issue.create_comment(comment) + else: + logging.info("No content for comment") + + def get_existing_pr_for_a_branch(self, base_branch, branch_name): + """ + Try to get a pull request for a branch on a GitHub repository. + Returns + - The pull request if it exists and is open, otherwise None. + - If more than one pull request is found, then the first one will be used. + """ + prs = self.gh_repo.get_pulls(base=base_branch, head=f"{self.org}:{branch_name}", state="all") + + if prs.totalCount == 0: + logging.info(f"PR for branch {branch_name} does not exist yet on {self.gh_repo.full_name}") + return None + + pull_req = None + if prs.totalCount > 1: + pull_req = prs[0] + logging.warning( + f"Found more than one PR for branch {branch_name} on {self.gh_repo.full_name} -" + + f"this is unexpected, continuing with first one of: {[(x.state, x.html_url) for x in prs]}" + ) + + if prs.totalCount == 1: + pull_req = prs[0] + logging.info(f"Found PR #{pull_req.number} for branch {branch_name} on {self.gh_repo.full_name}: {pull_req.html_url}") + + if pull_req.state == 'closed': + logging.warning(f"PR #{pull_req.number} is not open - new PR will be created") + if pull_req.is_merged(): + logging.warning(f"PR #{pull_req.number} for '{branch_name}' branch is already merged but rebase.sh produced results") + else: + logging.warning(f"PR #{pull_req.number} for '{branch_name}' exists already but was closed") + return None + return pull_req + + +def try_get_env(var_name, default=None, die=False) -> str: + val = os.getenv(var_name) + if val is None or val == "": + if default is not None: + logging.info(f"'{var_name}' env var is unset, using '{default}'") + return default + if die: + raise Exception(f"Could not get environment variable '{var_name}'") + else: + logging.info(f"Could not get environment variable '{var_name}' - ignoring") + return "" + return val diff --git a/scripts/pyutils/gitutils.py b/scripts/pyutils/gitutils.py new file mode 100644 index 0000000000..eaa1705b3d --- /dev/null +++ b/scripts/pyutils/gitutils.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 + +import logging + +from git import PushInfo, Repo # GitPython + +BOT_REMOTE_NAME = "bot-creds" +REMOTE_ORIGIN = "origin" + + +class GitUtils(): + def __init__(self, dry_run=False): + self.dry_run = dry_run + self.git_repo = Repo(".") + self.remote = None + + def file_changed(self, file_path) -> bool: + changedFiles = [item.a_path for item in self.git_repo.index.diff(None)] + return file_path in changedFiles + + def add_files_to_staging_area(self, file_paths=[], all=False): + if self.dry_run: + if all: + logging.info("[DRY RUN] git add -A") + else: + logging.info(f"[DRY RUN] git add {file_paths}") + return + + if all: + self.git_repo.index.add(A=True) + else: + self.git_repo.index.add(file_paths) + + def commit(self, message): + if self.dry_run: + logging.info(f"[DRY RUN] git commit -m {message}") + return + self.git_repo.index.commit(message) + + def checkout_branch(self, branch_name): + if self.dry_run: + logging.info(f"[DRY RUN] git checkout -b {branch_name}") + return + new_branch = self.git_repo.create_head(branch_name) + new_branch.checkout() + + def setup_remote_with_token(self, token, org, repo): + """ + Sets up the Git remote for the given repository using + the provided installation or personal access token. + """ + if self.dry_run: + logging.info(f"[DRY RUN] git remote add {BOT_REMOTE_NAME} https://x-access-token:TOKEN@github.com/{org}/{repo}") + return + + remote_url = f"https://x-access-token:{token}@github.com/{org}/{repo}" + try: + remote = self.git_repo.remote(BOT_REMOTE_NAME) + remote.set_url(remote_url) + except ValueError: + self.git_repo.create_remote(BOT_REMOTE_NAME, remote_url) + + self.remote = self.git_repo.remote(BOT_REMOTE_NAME) + return self.remote + + def remove_remote_with_token(self): + if self.dry_run: + logging.info(f"[DRY RUN] git remote remove {BOT_REMOTE_NAME}") + return + self.remote.remove(self.git_repo, BOT_REMOTE_NAME) + + def push(self, branch_name): + if self.dry_run: + logging.info(f"[DRY RUN] git push --force {branch_name}") + return + + push_result = self.remote.push(branch_name, force=True) + + if len(push_result) != 1: + raise Exception(f"Unexpected amount ({len(push_result)}) of items in push_result: {push_result}") + if push_result[0].flags & PushInfo.ERROR: + raise Exception(f"Pushing branch failed: {push_result[0].summary}") + if push_result[0].flags & PushInfo.FORCED_UPDATE: + logging.info(f"Branch '{branch_name}' existed and was updated (force push)") + + def get_remote_branch(self, branch_name): + """ + Get the reference for the given branch on the specified Git remote, + otherwise return None if the branch does not exist. + """ + if self.dry_run: + return None + + self.remote.fetch() + matching_remote_refs = [ref for ref in self.remote.refs if BOT_REMOTE_NAME + "/" + branch_name == ref.name] + + if len(matching_remote_refs) == 0: + logging.info(f"Branch '{branch_name}' does not exist on remote") + return None + + if len(matching_remote_refs) > 1: + matching_branches = ", ".join([r.name for r in matching_remote_refs]) + logging.warning(f"Found more than one branch matching '{branch_name}' " + + f"on remote: {matching_branches}. Taking first one") + return matching_remote_refs[0] + + if len(matching_remote_refs) == 1: + logging.info(f"Branch '{branch_name}' already exists on remote") + return matching_remote_refs[0] + + return None + + def is_local_branch_based_on_newer_base_branch_commit(self, base_branch_name, remote_branch_name, local_branch_name): + """ + Compares local and remote rebase branches by looking at their start on base branch. + Returns True if local branch starts on newer commit and should to be pushed to remote, + otherwise False. + """ + if self.dry_run: + return True + + remote_merge_base = self.git_repo.merge_base(base_branch_name, remote_branch_name) + local_merge_base = self.git_repo.merge_base(base_branch_name, local_branch_name) + + if remote_merge_base[0] == local_merge_base[0]: + logging.info("Remote branch is up to date. " + + f"Branch-off commit: {commit_str(remote_merge_base[0])}") + return False + + logging.info( + f"Remote branch is older - it needs updating. " + f"Remote branch is on top of {base_branch_name}'s commit: '{commit_str(remote_merge_base[0])}'. " + f"Local branch is on top of {base_branch_name}'s commit '{commit_str(local_merge_base[0])}'" + ) + return True + + +def commit_str(commit): + """Returns the first 8 characters of the commit's SHA hash and the commit summary.""" + return f"{commit.hexsha[:8]} - {commit.summary}" diff --git a/scripts/pyutils/requirements.txt b/scripts/pyutils/requirements.txt new file mode 100644 index 0000000000..9291dfa8a6 --- /dev/null +++ b/scripts/pyutils/requirements.txt @@ -0,0 +1,2 @@ +pygithub==2.8.1 +gitpython==3.1.45 diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index 86eb52e609..f7e49d223a 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -46,7 +46,7 @@ get_vrel_from_rpm() {{ local -r rpm_dir="$1" # exit if rpm_dir directory does not exist - if [ ! -d "${rpm_dir}" ]; then + if [ ! -d "${{rpm_dir}}" ]; then echo "" return fi @@ -68,6 +68,50 @@ get_vrel_from_rpm() {{ echo "" }} +get_redhat_bootc_image_url() {{ + local -r registry="$1" + local -r release_version="$2" + local image_url="" + + # get arch + local arch="" + case ${{UNAME_M}} in + x86_64) + arch="amd64" + ;; + aarch64) + arch="arm64" + ;; + esac + + sha_id=$(skopeo inspect --raw "docker://${{registry}}/openshift4/microshift-bootc-rhel9:v${{release_version}}" | \ + jq -r ".manifests[] | select(.platform.architecture==\"${{arch}}\") | .digest" 2>/dev/null) + if [ "${{sha_id}}" ] && [[ "${{sha_id}}" != "" ]] && [[ "${{sha_id}}" =~ ^sha256:[0-9a-f]{{64}}$ ]]; then + image_url="${registry}/openshift4/microshift-bootc-rhel9@${sha_id}" + fi + echo "${{image_url}}" +}} + +get_lrel_release_image_url() {{ + local -r release_type="$1" + local -r release_version="$2" + local image_url="" + + if [[ "${{release_type}}" == "ec" ]]; then + image_url="$(curl -s "https://mirror.openshift.com/pub/openshift-v4/${{UNAME_M}}/microshift/ocp-dev-preview/${{release_version}}/el9/bootc-pullspec.txt")" + elif [[ "${{release_type}}" == "rc" ]]; then + image_url="$(curl -s "https://mirror.openshift.com/pub/openshift-v4/${{UNAME_M}}/microshift/ocp/${{release_version}}/el9/bootc-pullspec.txt")" + elif [[ "${{release_type}}" == "zstream" ]]; then + for registry in "registry.redhat.io" "registry.stage.redhat.io"; do + image_url="$(get_redhat_bootc_image_url "${{registry}}" "${{release_version}}")" + if [ -n "${{image_url}}" ]; then + break + fi + done + fi + echo "${{image_url}}" +}} + # The current release minor version (e.g. '17' for '4.17') affects # the definition of previous and fake next versions. export MINOR_VERSION={minor_version} @@ -147,7 +191,7 @@ BREW_Y1_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{PREVIOUS BREW_Y2_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{YMINUS2_MINOR_VERSION}}-zstream/{ARCH}/")" BREW_RC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-rc/{ARCH}/")" BREW_EC_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-ec/{ARCH}/")" -BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${BREW_RPM_SOURCE}/4.${MINOR_VERSION}-nightly/${UNAME_M}/")" +BREW_NIGHTLY_RELEASE_VERSION="$(get_vrel_from_rpm "${{BREW_RPM_SOURCE}}/4.${{MINOR_VERSION}}-nightly/{ARCH}/")" export BREW_Y0_RELEASE_VERSION export BREW_Y1_RELEASE_VERSION export BREW_Y2_RELEASE_VERSION @@ -155,12 +199,16 @@ export BREW_RC_RELEASE_VERSION export BREW_EC_RELEASE_VERSION export BREW_NIGHTLY_RELEASE_VERSION -# Set the release type to ec, rc or zstream -LATEST_RELEASE_TYPE="{LATEST_RELEASE_TYPE}" -export LATEST_RELEASE_TYPE +# Latest Release info +LATEST_RELEASE_TYPE="ec" # ec, rc or zstream +BREW_LREL_RELEASE_VERSION="${{BREW_EC_RELEASE_VERSION}}" # BREW_EC_RELEASE_VERSION, BREW_RC_RELEASE_VERSION or BREW_Y0_RELEASE_VERSION +LATEST_RELEASE_VERSION="$(echo "${{BREW_LREL_RELEASE_VERSION}}" | sed -E 's/(.*)-.*/\1/' | sed -E 's/(.*)~(.*)/\1-\2/')" # example: 4.19.7 or 4.20.0-rc.3 +LREL_RELEASE_IMAGE_URL="$(get_lrel_release_image_url "${{LATEST_RELEASE_TYPE}}" "${{LATEST_RELEASE_VERSION}}")" -BREW_LREL_RELEASE_VERSION="${{BREW_EC_RELEASE_VERSION}}" +export LATEST_RELEASE_TYPE export BREW_LREL_RELEASE_VERSION +export LATEST_RELEASE_VERSION +export LREL_RELEASE_IMAGE_URL # Branch and commit for the openshift-tests-private repository OPENSHIFT_TESTS_PRIVATE_REPO_BRANCH="release-4.${{MINOR_VERSION}}" diff --git a/test/bin/ci_phase_iso_build.sh b/test/bin/ci_phase_iso_build.sh index 0d52ceaefc..7d1b1541e1 100755 --- a/test/bin/ci_phase_iso_build.sh +++ b/test/bin/ci_phase_iso_build.sh @@ -144,6 +144,9 @@ cd "${ROOTDIR}/test/" # shellcheck source=test/bin/common.sh source "${SCRIPTDIR}/common.sh" +# shellcheck source=test/bin/common_versions_verify.sh +source "${SCRIPTDIR}/common_versions_verify.sh" + if ${COMPOSER_CLI_BUILDS} ; then # Determine and create the ideal number of workers $(dry_run) bash -x ./bin/manage_composer_config.sh create-workers diff --git a/test/bin/common.sh b/test/bin/common.sh index 1886a86010..edf7304db3 100644 --- a/test/bin/common.sh +++ b/test/bin/common.sh @@ -370,7 +370,6 @@ MICROSHIFT_MANDATORY_RPMS_LIST=( microshift microshift-release-info ) - MICROSHIFT_Y2_OPTIONAL_RPMS_LIST=( microshift-olm microshift-olm-release-info @@ -379,19 +378,23 @@ MICROSHIFT_Y2_OPTIONAL_RPMS_LIST=( microshift-gateway-api microshift-gateway-api-release-info microshift-low-latency + microshift-observability ) MICROSHIFT_Y1_OPTIONAL_RPMS_LIST=( "${MICROSHIFT_Y2_OPTIONAL_RPMS_LIST[@]}" - microshift-observability + microshift-cert-manager + microshift-cert-manager-release-info ) MICROSHIFT_OPTIONAL_RPMS_LIST=( "${MICROSHIFT_Y1_OPTIONAL_RPMS_LIST[@]}" - microshift-cert-manager ) -MICROSHIFT_Y1_X86_64_RPMS_LIST=( +MICROSHIFT_Y2_X86_64_RPMS_LIST=( microshift-ai-model-serving microshift-ai-model-serving-release-info ) +MICROSHIFT_Y1_X86_64_RPMS_LIST=( + "${MICROSHIFT_Y2_X86_64_RPMS_LIST[@]}" +) MICROSHIFT_X86_64_RPMS_LIST=( "${MICROSHIFT_Y1_X86_64_RPMS_LIST[@]}" ) diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index e14ef5a829..8e98d824ed 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -68,6 +68,50 @@ get_vrel_from_rpm() { echo "" } +get_redhat_bootc_image_url() { + local -r registry="$1" + local -r release_version="$2" + local image_url="" + + # get arch + local arch="" + case ${UNAME_M} in + x86_64) + arch="amd64" + ;; + aarch64) + arch="arm64" + ;; + esac + + sha_id=$(skopeo inspect --raw "docker://${registry}/openshift4/microshift-bootc-rhel9:v${release_version}" | \ + jq -r ".manifests[] | select(.platform.architecture==\"${arch}\") | .digest" 2>/dev/null) + if [ "${sha_id}" ] && [[ "${sha_id}" != "" ]] && [[ "${sha_id}" =~ ^sha256:[0-9a-f]{64}$ ]]; then + image_url="${registry}/openshift4/microshift-bootc-rhel9@${sha_id}" + fi + echo "${image_url}" +} + +get_lrel_release_image_url() { + local -r release_type="$1" + local -r release_version="$2" + local image_url="" + + if [[ "${release_type}" == "ec" ]]; then + image_url="$(curl -s "https://mirror.openshift.com/pub/openshift-v4/${UNAME_M}/microshift/ocp-dev-preview/${release_version}/el9/bootc-pullspec.txt")" + elif [[ "${release_type}" == "rc" ]]; then + image_url="$(curl -s "https://mirror.openshift.com/pub/openshift-v4/${UNAME_M}/microshift/ocp/${release_version}/el9/bootc-pullspec.txt")" + elif [[ "${release_type}" == "zstream" ]]; then + for registry in "registry.redhat.io" "registry.stage.redhat.io"; do + image_url="$(get_redhat_bootc_image_url "${registry}" "${release_version}")" + if [ -n "${image_url}" ]; then + break + fi + done + fi + echo "${image_url}" +} + # The current release minor version (e.g. '17' for '4.17') affects # the definition of previous and fake next versions. export MINOR_VERSION=21 @@ -155,12 +199,16 @@ export BREW_RC_RELEASE_VERSION export BREW_EC_RELEASE_VERSION export BREW_NIGHTLY_RELEASE_VERSION -# Set the release type to ec, rc or zstream -LATEST_RELEASE_TYPE="ec" -export LATEST_RELEASE_TYPE +# Latest Release info +LATEST_RELEASE_TYPE="ec" # ec, rc or zstream +BREW_LREL_RELEASE_VERSION="${BREW_EC_RELEASE_VERSION}" # BREW_EC_RELEASE_VERSION, BREW_RC_RELEASE_VERSION or BREW_Y0_RELEASE_VERSION +LATEST_RELEASE_VERSION="$(echo "${BREW_LREL_RELEASE_VERSION}" | sed -E 's/(.*)-.*/\1/' | sed -E 's/(.*)~(.*)/\1-\2/')" # example: 4.19.7 or 4.20.0-rc.3 +LREL_RELEASE_IMAGE_URL="$(get_lrel_release_image_url "${LATEST_RELEASE_TYPE}" "${LATEST_RELEASE_VERSION}")" -BREW_LREL_RELEASE_VERSION="${BREW_EC_RELEASE_VERSION}" +export LATEST_RELEASE_TYPE export BREW_LREL_RELEASE_VERSION +export LATEST_RELEASE_VERSION +export LREL_RELEASE_IMAGE_URL # Branch and commit for the openshift-tests-private repository OPENSHIFT_TESTS_PRIVATE_REPO_BRANCH="release-4.${MINOR_VERSION}" diff --git a/test/bin/common_versions_verify.sh b/test/bin/common_versions_verify.sh new file mode 100644 index 0000000000..5fb443b273 --- /dev/null +++ b/test/bin/common_versions_verify.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Following script serves as a sort of presubmit to make sure that following files stay in sync: +# - test/bin/common_versions.sh +# - test/bin/pyutils/generate_common_versions.py +# - test/assets/common_versions.sh.template + +# Check if there was a change to common_versions.sh on current branch compared to base branch. +# --exit-code: 0 means no changes, 1 means changes hence the inverted condition with '!' +# Because the top commit is Merge Commit of PR branch into base branch (e.g. main), we need to check against the earlier commit (i.e. ^1). +if ! git diff --exit-code "${SCENARIO_BUILD_BRANCH}^1...HEAD" "${ROOTDIR}/test/bin/common_versions.sh"; then + # If the file was changed, regenerate it and compare - diff means that most likely the file was updated manually. + "${ROOTDIR}/test/bin/pyutils/generate_common_versions.py" --update-file + if ! git diff --exit-code "${ROOTDIR}/test/bin/common_versions.sh"; then + echo "ERROR: Discovered that common_versions.sh was updated on the branch under test, but the regenerated version is different" + git diff + exit 1 + fi +fi diff --git a/test/bin/manage_brew_rpms.sh b/test/bin/manage_brew_rpms.sh index 3a9712c597..dc108a6888 100755 --- a/test/bin/manage_brew_rpms.sh +++ b/test/bin/manage_brew_rpms.sh @@ -18,7 +18,7 @@ action_access() { local -r outfile=$(mktemp /tmp/curl-brewhub.XXXXXXXX) local rc=0 - if ! curl --silent --show-error --head "https://brewhub.engineering.redhat.com" &> "${outfile}" ; then + if ! curl --retry 10 --retry-delay 5 --retry-max-time 120 --silent --show-error --head "https://brewhub.engineering.redhat.com" &> "${outfile}" ; then rc=1 # Display the error in case the site is not accessible. # This is useful to rule out certificate problems, etc. diff --git a/test/bin/pyutils/generate_common_versions.py b/test/bin/pyutils/generate_common_versions.py index e2f20a4805..a0accc1cea 100644 --- a/test/bin/pyutils/generate_common_versions.py +++ b/test/bin/pyutils/generate_common_versions.py @@ -11,6 +11,10 @@ import logging import pathlib +sys.path.append(str(pathlib.Path(__file__).resolve().parent / '../../../scripts/pyutils')) +import gitutils # noqa: E402 +import ghutils # noqa: E402 + ARCH = os.uname().machine # The version of Sonobuoy package used in CNCF tests. @@ -28,7 +32,7 @@ logging.basicConfig( level=logging.INFO, - format='%(levelname)s: %(message)s', + format='%(asctime)s %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s', stream=sys.stderr ) @@ -96,7 +100,11 @@ def repo_provides_pkg(repo, pkg): try: logging.info(f"Running command: {' '.join(args)}") - subprocess.run(args, stdout=sys.stderr, check=True) + result = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True, check=True) + output = result.stdout.strip() + logging.info(f"Command's output:\n{output}") + if "Usable URL not found" in output: + return False return True except subprocess.CalledProcessError: return False @@ -203,83 +211,128 @@ def get_release_version_string(repo, var_name): return None -parser = argparse.ArgumentParser(description="Generate common_versions.sh variables.") -parser.add_argument("minor", type=int, help="The minor version number.") - -args = parser.parse_args() - -minor_version = args.minor -previous_minor_version = minor_version - 1 -yminus2_minor_version = minor_version - 2 - -# The current release repository comes from the 'rhocp' stream for release -# branches, or the OpenShift mirror if only a RC or EC is available. It can -# be empty, if no candidate for the current minor has been built yet. -logging.info("Getting CURRENT_RELEASE_REPO") -current_release_repo = get_microshift_repo(minor_version) -current_release_version = get_release_version_string(current_release_repo, "CURRENT_RELEASE_REPO") - -# The previous release repository value should either point to the OpenShift -# mirror URL or the 'rhocp' repository name. -logging.info("Getting PREVIOUS_RELEASE_REPO") -previous_release_repo = get_microshift_repo(previous_minor_version) -previous_release_version = get_release_version_string(previous_release_repo, "PREVIOUS_RELEASE_REPO") - -# The y-2 release repository value should either point to the OpenShift -# mirror URL or the 'rhocp' repository name. It should always come from -# the 'rhocp' stream. -logging.info("Getting YMINUS2_RELEASE_REPO") -yminus2_release_repo = get_microshift_repo(yminus2_minor_version) -yminus2_release_version = get_release_version_string(yminus2_release_repo, "YMINUS2_RELEASE_REPO") - -# The 'rhocp_minor_y' variable should be the minor version number, if the -# current release is available through the 'rhocp' stream, otherwise empty. -rhocp_minor_y = minor_version if repo_provides_pkg(f"rhocp-4.{minor_version}-for-rhel-9-{ARCH}-rpms", "cri-o") else '""' - -# The beta repository, containing dependencies, should point to the -# OpenShift mirror URL. If the mirror for current minor is not -# available yet, it should point to an older release. -logging.info("Getting RHOCP_MINOR_Y_BETA") -rhocp_minor_y_beta = get_dependencies_repo_url(minor_version, 3) - -# The 'rhocp_minor_y' variable should be the previous minor version number, if -# the previous release is available through the 'rhocp' stream, otherwise empty. -rhocp_minor_y1 = previous_minor_version if repo_provides_pkg(f"rhocp-4.{previous_minor_version}-for-rhel-9-{ARCH}-rpms", "cri-o") else '""' - -# The beta repository, containing dependencies, should point to the -# OpenShift mirror URL. The mirror for previous release should always -# be available. -logging.info("Getting RHOCP_MINOR_Y1_BETA") -rhocp_minor_y1_beta = get_dependencies_repo_url(previous_minor_version) - -# The 'rhocp_minor_y2' should always be the y-2 minor version number. -rhocp_minor_y2 = yminus2_minor_version - -template_path = pathlib.Path(__file__).resolve().parent / '../../assets/common_versions.sh.template' - -with open(template_path, 'r') as f: - template_string = f.read() - -output = template_string.format( - minor_version=minor_version, - current_release_repo=current_release_repo, - current_release_version=current_release_version, - previous_release_repo=previous_release_repo, - previous_release_version=previous_release_version, - yminus2_release_repo=yminus2_release_repo, - yminus2_release_version=yminus2_release_version, - rhocp_minor_y=rhocp_minor_y, - rhocp_minor_y_beta=rhocp_minor_y_beta, - rhocp_minor_y1=rhocp_minor_y1, - rhocp_minor_y1_beta=rhocp_minor_y1_beta, - rhocp_minor_y2=rhocp_minor_y2, - CNCF_SONOBUOY_VERSION=CNCF_SONOBUOY_VERSION, - CNCF_SYSTEMD_LOGS_VERSION=CNCF_SYSTEMD_LOGS_VERSION, - GITOPS_VERSION=GITOPS_VERSION, - LATEST_RELEASE_TYPE=LATEST_RELEASE_TYPE, - ARCH=ARCH -) - -output_noarch = output.replace(ARCH, '${UNAME_M}') - -print(output_noarch) +def generate_common_versions(minor_version): + previous_minor_version = minor_version - 1 + yminus2_minor_version = minor_version - 2 + + # The current release repository comes from the 'rhocp' stream for release + # branches, or the OpenShift mirror if only a RC or EC is available. It can + # be empty, if no candidate for the current minor has been built yet. + logging.info("Getting CURRENT_RELEASE_REPO") + current_release_repo = get_microshift_repo(minor_version) + current_release_version = get_release_version_string(current_release_repo, "CURRENT_RELEASE_REPO") + + # The previous release repository value should either point to the OpenShift + # mirror URL or the 'rhocp' repository name. + logging.info("Getting PREVIOUS_RELEASE_REPO") + previous_release_repo = get_microshift_repo(previous_minor_version) + previous_release_version = get_release_version_string(previous_release_repo, "PREVIOUS_RELEASE_REPO") + + # The y-2 release repository value should either point to the OpenShift + # mirror URL or the 'rhocp' repository name. It should always come from + # the 'rhocp' stream. + logging.info("Getting YMINUS2_RELEASE_REPO") + yminus2_release_repo = get_microshift_repo(yminus2_minor_version) + yminus2_release_version = get_release_version_string(yminus2_release_repo, "YMINUS2_RELEASE_REPO") + + # The 'rhocp_minor_y' variable should be the minor version number, if the + # current release is available through the 'rhocp' stream, otherwise empty. + rhocp_minor_y = minor_version if repo_provides_pkg(f"rhocp-4.{minor_version}-for-rhel-9-{ARCH}-rpms", "cri-o") else '""' + + # The beta repository, containing dependencies, should point to the + # OpenShift mirror URL. If the mirror for current minor is not + # available yet, it should point to an older release. + logging.info("Getting RHOCP_MINOR_Y_BETA") + rhocp_minor_y_beta = get_dependencies_repo_url(minor_version, 3) + + # The 'rhocp_minor_y' variable should be the previous minor version number, if + # the previous release is available through the 'rhocp' stream, otherwise empty. + rhocp_minor_y1 = previous_minor_version if repo_provides_pkg(f"rhocp-4.{previous_minor_version}-for-rhel-9-{ARCH}-rpms", "cri-o") else '""' + + # The beta repository, containing dependencies, should point to the + # OpenShift mirror URL. The mirror for previous release should always + # be available. + logging.info("Getting RHOCP_MINOR_Y1_BETA") + rhocp_minor_y1_beta = get_dependencies_repo_url(previous_minor_version) + + # The 'rhocp_minor_y2' should always be the y-2 minor version number. + rhocp_minor_y2 = yminus2_minor_version + + template_path = pathlib.Path(__file__).resolve().parent / '../../assets/common_versions.sh.template' + + with open(template_path, 'r') as f: + template_string = f.read() + + output = template_string.format( + minor_version=minor_version, + current_release_repo=current_release_repo, + current_release_version=current_release_version, + previous_release_repo=previous_release_repo, + previous_release_version=previous_release_version, + yminus2_release_repo=yminus2_release_repo, + yminus2_release_version=yminus2_release_version, + rhocp_minor_y=rhocp_minor_y, + rhocp_minor_y_beta=rhocp_minor_y_beta, + rhocp_minor_y1=rhocp_minor_y1, + rhocp_minor_y1_beta=rhocp_minor_y1_beta, + rhocp_minor_y2=rhocp_minor_y2, + CNCF_SONOBUOY_VERSION=CNCF_SONOBUOY_VERSION, + CNCF_SYSTEMD_LOGS_VERSION=CNCF_SYSTEMD_LOGS_VERSION, + GITOPS_VERSION=GITOPS_VERSION, + LATEST_RELEASE_TYPE=LATEST_RELEASE_TYPE, + ARCH=ARCH + ) + + output_noarch = output.replace(ARCH, '${UNAME_M}') + + return output_noarch + + +def main(): + parser = argparse.ArgumentParser(description="Generate common_versions.sh variables.") + parser.add_argument("minor", type=int, help="The minor version number.") + parser.add_argument("--update-file", default=False, action="store_true", help="Update test/bin/common_versions.sh file.") + parser.add_argument("--create-pr", default=False, action="store_true", + help=("Commit the changes to a new branch, push it to the openshift/microshift, and create a pull request." + + "Implies --update-file. Expects following env vars to be set: ORG, REPO, GH_TOKEN or APP_ID and KEY")) + parser.add_argument("--dry-run", default=False, action="store_true", help="Dry run") + args = parser.parse_args() + + output = generate_common_versions(args.minor) + + if args.update_file or args.create_pr: + logging.info("Updating test/bin/common_versions.sh file") + dest_file = pathlib.Path(__file__).resolve().parent / '../common_versions.sh' + with open(dest_file, 'w') as f: + f.write(output) + else: + print(output) + + if args.create_pr: + g = gitutils.GitUtils(dry_run=args.dry_run) + if not g.file_changed("test/bin/common_versions.sh"): + logging.info("No changes to test/bin/common_versions.sh") + exit(0) + + base_branch = g.git_repo.active_branch.name + if not base_branch.startswith("release-4"): + logging.error(f"Script is expected to be executed on branch starting with 'release-4', but it's {base_branch}") + exit(1) + + gh = ghutils.GithubUtils(dry_run=args.dry_run) + g.setup_remote_with_token(gh.token, gh.org, gh.repo) + new_branch_name = f"common-versions-update-{base_branch}" + g.checkout_branch(new_branch_name) + g.add_files_to_staging_area(["test/bin/common_versions.sh"]) + g.commit("Update common_versions.sh") + g.push(new_branch_name) + + pull_req = gh.get_existing_pr_for_a_branch(base_branch, new_branch_name) + if pull_req is None: + # Assuming the script always runs against `release-4.y` branch for the value in brackets. + pr_title = f"[{base_branch}] NO-ISSUE: Update common_versions.sh" + gh.create_pr(base_branch, new_branch_name, pr_title, "") + + +if __name__ == "__main__": + main() diff --git a/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-ec-with-optional-fips.containerfile b/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-ec-with-optional-fips.containerfile index ca75d6ce19..d3b9f662b1 100644 --- a/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-ec-with-optional-fips.containerfile +++ b/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-ec-with-optional-fips.containerfile @@ -10,7 +10,10 @@ match-architectures = ["x86_64"] EOF # Enable the FIPS crypto policy -RUN dnf install -y crypto-policies-scripts && \ +# +# Note: CNI plugins are required for podman to operate normally on RHEL 9.x. +# This package is no longer installed as cri-o dependency. +RUN dnf install -y crypto-policies-scripts containernetworking-plugins && \ update-crypto-policies --no-reload --set FIPS && \ dnf clean all # {{- end -}} diff --git a/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-rc-with-optional-fips.containerfile b/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-rc-with-optional-fips.containerfile index f6e4f43e4d..36b341cf35 100644 --- a/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-rc-with-optional-fips.containerfile +++ b/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-rc-with-optional-fips.containerfile @@ -10,7 +10,10 @@ match-architectures = ["x86_64"] EOF # Enable the FIPS crypto policy -RUN dnf install -y crypto-policies-scripts && \ +# +# Note: CNI plugins are required for podman to operate normally on RHEL 9.x. +# This package is no longer installed as cri-o dependency. +RUN dnf install -y crypto-policies-scripts containernetworking-plugins && \ update-crypto-policies --no-reload --set FIPS && \ dnf clean all # {{- end -}} diff --git a/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-zstream-with-optional-fips.containerfile b/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-zstream-with-optional-fips.containerfile index 89607633a3..96dc287bcd 100644 --- a/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-zstream-with-optional-fips.containerfile +++ b/test/image-blueprints-bootc/layer1-base/group3/rhel96-bootc-brew-zstream-with-optional-fips.containerfile @@ -10,7 +10,10 @@ match-architectures = ["x86_64"] EOF # Enable the FIPS crypto policy -RUN dnf install -y crypto-policies-scripts && \ +# +# Note: CNI plugins are required for podman to operate normally on RHEL 9.x. +# This package is no longer installed as cri-o dependency. +RUN dnf install -y crypto-policies-scripts containernetworking-plugins && \ update-crypto-policies --no-reload --set FIPS && \ dnf clean all # {{- end -}} diff --git a/test/image-blueprints-bootc/layer2-presubmit/group2/rhel96-bootc-source-fips.containerfile b/test/image-blueprints-bootc/layer2-presubmit/group2/rhel96-bootc-source-fips.containerfile index 2c2490bcf3..ff3ff731f6 100644 --- a/test/image-blueprints-bootc/layer2-presubmit/group2/rhel96-bootc-source-fips.containerfile +++ b/test/image-blueprints-bootc/layer2-presubmit/group2/rhel96-bootc-source-fips.containerfile @@ -8,6 +8,9 @@ match-architectures = ["x86_64"] EOF # Enable the FIPS crypto policy -RUN dnf install -y crypto-policies-scripts && \ +# +# Note: CNI plugins are required for podman to operate normally on RHEL 9.x. +# This package is no longer installed as cri-o dependency. +RUN dnf install -y crypto-policies-scripts containernetworking-plugins && \ update-crypto-policies --no-reload --set FIPS && \ dnf clean all diff --git a/test/image-blueprints/layer3-periodic/group1/rhel96-source-isolated.toml b/test/image-blueprints/layer3-periodic/group1/rhel96-source-isolated.toml index b9b508b14e..863f2bfc54 100644 --- a/test/image-blueprints/layer3-periodic/group1/rhel96-source-isolated.toml +++ b/test/image-blueprints/layer3-periodic/group1/rhel96-source-isolated.toml @@ -23,6 +23,12 @@ version = "*" name = "podman" version = "*" +# CNI plugins are required for podman to operate normally on RHEL 9.x. +# This package is no longer installed as cri-o dependency. +[[packages]] +name = "containernetworking-plugins" +version = "*" + [[packages]] name = "skopeo" version = "*" diff --git a/test/resources/common.resource b/test/resources/common.resource index 5abf5a8856..9f91c2ec78 100644 --- a/test/resources/common.resource +++ b/test/resources/common.resource @@ -138,3 +138,14 @@ Local Command Should Work Log ${stdout} Should Be Equal As Integers 0 ${rc} RETURN ${stdout} + +Remove Files + [Documentation] removes files from the microshift host + [Arguments] @{files} + Log ${files} + FOR ${file} IN @{files} + ${stdout} ${stderr} ${rc}= Execute Command + ... rm -f "${file}" + ... sudo=True return_stdout=True return_stderr=True return_rc=True + Should Be Equal As Integers ${rc} 0 + END diff --git a/test/scenarios-bootc/periodics/el96-src@gitops.sh b/test/scenarios-bootc/periodics/el96-src@fault-tests-and-greenboot.sh similarity index 81% rename from test/scenarios-bootc/periodics/el96-src@gitops.sh rename to test/scenarios-bootc/periodics/el96-src@fault-tests-and-greenboot.sh index 0778c3c73d..3b0e2227dc 100644 --- a/test/scenarios-bootc/periodics/el96-src@gitops.sh +++ b/test/scenarios-bootc/periodics/el96-src@fault-tests-and-greenboot.sh @@ -3,7 +3,7 @@ # Sourced from scenario.sh and uses functions defined there. scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source-gitops + prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source launch_vm --boot_blueprint rhel96-bootc } @@ -13,5 +13,6 @@ scenario_remove_vms() { scenario_run_tests() { run_tests host1 \ - suites/gitops/ + suites/fault-tests \ + suites/greenboot/ } diff --git a/test/scenarios-bootc/periodics/el96-src@fault-tests.sh b/test/scenarios-bootc/periodics/el96-src@fault-tests.sh deleted file mode 100644 index cb6afd5675..0000000000 --- a/test/scenarios-bootc/periodics/el96-src@fault-tests.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source - launch_vm --boot_blueprint rhel96-bootc -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 suites/fault-tests -} diff --git a/test/scenarios-bootc/periodics/el96-src@fips.sh.disabled b/test/scenarios-bootc/periodics/el96-src@fips.sh similarity index 100% rename from test/scenarios-bootc/periodics/el96-src@fips.sh.disabled rename to test/scenarios-bootc/periodics/el96-src@fips.sh diff --git a/test/scenarios-bootc/periodics/el96-src@telemetry.sh b/test/scenarios-bootc/periodics/el96-src@gitops-telemetry-clusterid-systemd.sh old mode 100644 new mode 100755 similarity index 73% rename from test/scenarios-bootc/periodics/el96-src@telemetry.sh rename to test/scenarios-bootc/periodics/el96-src@gitops-telemetry-clusterid-systemd.sh index df144aaad3..1250fbde33 --- a/test/scenarios-bootc/periodics/el96-src@telemetry.sh +++ b/test/scenarios-bootc/periodics/el96-src@gitops-telemetry-clusterid-systemd.sh @@ -3,7 +3,7 @@ # Sourced from scenario.sh and uses functions defined there. scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source + prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source-gitops launch_vm --boot_blueprint rhel96-bootc } @@ -17,5 +17,8 @@ scenario_run_tests() { --variable "PROXY_PORT:9001" \ --variable "PROMETHEUS_HOST:$(hostname)" \ --variable "PROMETHEUS_PORT:9093" \ - suites/telemetry/telemetry.robot + suites/gitops/ \ + suites/telemetry/telemetry.robot \ + suites/osconfig/clusterid.robot \ + suites/osconfig/systemd-resolved.robot } diff --git a/test/scenarios-bootc/periodics/el96-src@greenboot.sh b/test/scenarios-bootc/periodics/el96-src@greenboot.sh deleted file mode 100644 index 9453d13331..0000000000 --- a/test/scenarios-bootc/periodics/el96-src@greenboot.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source - launch_vm --boot_blueprint rhel96-bootc -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 suites/greenboot/ -} diff --git a/test/scenarios-bootc/periodics/el96-src@osconfig-misc.sh b/test/scenarios-bootc/periodics/el96-src@osconfig-misc.sh deleted file mode 100644 index e18c6e84fb..0000000000 --- a/test/scenarios-bootc/periodics/el96-src@osconfig-misc.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Sourced from scenario.sh and uses functions defined there. - -scenario_create_vms() { - prepare_kickstart host1 kickstart-bootc.ks.template rhel96-bootc-source - launch_vm --boot_blueprint rhel96-bootc -} - -scenario_remove_vms() { - remove_vm host1 -} - -scenario_run_tests() { - run_tests host1 \ - suites/osconfig/clusterid.robot \ - suites/osconfig/systemd-resolved.robot -} diff --git a/test/scenarios-bootc/releases/el100-lrel@ginkgo-tests.sh b/test/scenarios-bootc/releases/el100-lrel@ginkgo-tests.sh new file mode 100644 index 0000000000..472d3e036a --- /dev/null +++ b/test/scenarios-bootc/releases/el100-lrel@ginkgo-tests.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +start_image="rhel100-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + +scenario_create_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" + launch_vm --boot_blueprint rhel100-bootc --vm_disksize 30 +} + +scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + remove_vm host1 +} + +scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + # Wait for MicroShift to be ready + wait_for_microshift_to_be_ready host1 + + run_ginkgo_tests host1 "~Disruptive" +} diff --git a/test/scenarios-bootc/releases/el100-lrel@standard1.sh b/test/scenarios-bootc/releases/el100-lrel@standard1.sh new file mode 100644 index 0000000000..1b2acfa3cd --- /dev/null +++ b/test/scenarios-bootc/releases/el100-lrel@standard1.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +start_image="rhel100-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + +scenario_create_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" + launch_vm --boot_blueprint rhel100-bootc +} + +scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + remove_vm host1 +} + +scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + run_tests host1 \ + --variable "EXPECTED_OS_VERSION:10.0" \ + suites/standard1/ suites/selinux/validate-selinux-policy.robot +} diff --git a/test/scenarios-bootc/releases/el100-lrel@standard2.sh b/test/scenarios-bootc/releases/el100-lrel@standard2.sh new file mode 100644 index 0000000000..f0aad0c1c5 --- /dev/null +++ b/test/scenarios-bootc/releases/el100-lrel@standard2.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +start_image="rhel100-bootc-brew-${LATEST_RELEASE_TYPE}-with-optional" + +scenario_create_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + prepare_kickstart host1 kickstart-bootc.ks.template "${start_image}" + launch_vm --boot_blueprint rhel100-bootc +} + +scenario_remove_vms() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + remove_vm host1 +} + +scenario_run_tests() { + if ! does_image_exist "${start_image}"; then + echo "Image '${start_image}' not found - skipping test" + return 0 + fi + + run_tests host1 suites/standard2 +} diff --git a/test/scenarios-bootc/releases/el96-lrel@fips.sh.disabled b/test/scenarios-bootc/releases/el96-lrel@fips.sh similarity index 100% rename from test/scenarios-bootc/releases/el96-lrel@fips.sh.disabled rename to test/scenarios-bootc/releases/el96-lrel@fips.sh diff --git a/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh new file mode 100644 index 0000000000..254c03743a --- /dev/null +++ b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +# Enable container signature verification for published MicroShift images. +# These are ec / rc / zstream, thus guaranteed to be signed. +# shellcheck disable=SC2034 # used elsewhere +IMAGE_SIGSTORE_ENABLED=true + +scenario_create_vms() { + if [ -z "${LREL_RELEASE_IMAGE_URL}" ] || [[ "${LREL_RELEASE_IMAGE_URL}" == "" ]] ; then + echo "ERROR: Scenario requires a valid LREL_RELEASE_IMAGE_URL, but got '${LREL_RELEASE_IMAGE_URL}'" + exit 1 + fi + prepare_kickstart host1 kickstart-bootc.ks.template "${LREL_RELEASE_IMAGE_URL}" + launch_vm --boot_blueprint rhel96-bootc + + # Open the firewall ports. Other scenarios get this behavior by embedding + # settings in the blueprint, but we cannot open firewall ports in published + # images. We need to do this step before running the RF suite so that suite + # can assume it can reach all of the same ports as for any other test. + configure_vm_firewall host1 +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + --variable "EXPECTED_OS_VERSION:9.6" \ + --variable "IMAGE_SIGSTORE_ENABLED:True" \ + suites/standard1/ suites/selinux/validate-selinux-policy.robot +} diff --git a/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh new file mode 100644 index 0000000000..f3ff813941 --- /dev/null +++ b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Sourced from scenario.sh and uses functions defined there. + +# Enable container signature verification for published MicroShift images. +# These are ec / rc / z-stream, thus guaranteed to be signed. +# shellcheck disable=SC2034 # used elsewhere +IMAGE_SIGSTORE_ENABLED=true + +scenario_create_vms() { + if [ -z "${LREL_RELEASE_IMAGE_URL}" ] || [[ "${LREL_RELEASE_IMAGE_URL}" == "" ]] ; then + echo "ERROR: Scenario requires a valid LREL_RELEASE_IMAGE_URL, but got '${LREL_RELEASE_IMAGE_URL}'" + exit 1 + fi + prepare_kickstart host1 kickstart-bootc.ks.template "${LREL_RELEASE_IMAGE_URL}" + launch_vm --boot_blueprint rhel96-bootc + + # Open the firewall ports. Other scenarios get this behavior by embedding + # settings in the blueprint, but we cannot open firewall ports in published + # images. We need to do this step before running the RF suite so that suite + # can assume it can reach all of the same ports as for any other test. + configure_vm_firewall host1 +} + +scenario_remove_vms() { + remove_vm host1 +} + +scenario_run_tests() { + run_tests host1 \ + --variable "IMAGE_SIGSTORE_ENABLED:True" \ + suites/standard2/ +} diff --git a/test/scenarios/periodics/el96-src@fips-rpm.sh.disabled b/test/scenarios/periodics/el96-src@fips-rpm.sh similarity index 100% rename from test/scenarios/periodics/el96-src@fips-rpm.sh.disabled rename to test/scenarios/periodics/el96-src@fips-rpm.sh diff --git a/test/scenarios/periodics/el96-src@fips.sh.disabled b/test/scenarios/periodics/el96-src@fips.sh similarity index 100% rename from test/scenarios/periodics/el96-src@fips.sh.disabled rename to test/scenarios/periodics/el96-src@fips.sh diff --git a/test/scenarios/presubmits/el96-src@low-latency.sh b/test/scenarios/presubmits/el96-src@low-latency.sh index 0e23cf79ab..ac9e2efbeb 100644 --- a/test/scenarios/presubmits/el96-src@low-latency.sh +++ b/test/scenarios/presubmits/el96-src@low-latency.sh @@ -38,5 +38,6 @@ scenario_run_tests() { --exitonfailure \ suites/tuned/profile.robot \ suites/tuned/microshift-tuned.robot \ - suites/tuned/workload-partitioning.robot + suites/tuned/workload-partitioning.robot \ + suites/tuned/uncore-cache.robot } diff --git a/test/scenarios/releases/el96-lrel@low-latency.sh b/test/scenarios/releases/el96-lrel@low-latency.sh index e19ff5696a..9e111f2c22 100644 --- a/test/scenarios/releases/el96-lrel@low-latency.sh +++ b/test/scenarios/releases/el96-lrel@low-latency.sh @@ -46,5 +46,6 @@ scenario_run_tests() { --exitonfailure \ suites/tuned/profile.robot \ suites/tuned/microshift-tuned.robot \ - suites/tuned/workload-partitioning.robot + suites/tuned/workload-partitioning.robot \ + suites/tuned/uncore-cache.robot } diff --git a/test/suites/optional/cert-manager.robot b/test/suites/optional/cert-manager.robot index be82f98052..5b65be21c2 100644 --- a/test/suites/optional/cert-manager.robot +++ b/test/suites/optional/cert-manager.robot @@ -7,8 +7,10 @@ Library Process Library String Library ../../resources/journalctl.py Resource ../../resources/common.resource +Resource ../../resources/hosts.resource Resource ../../resources/kubeconfig.resource Resource ../../resources/oc.resource +Resource ../../resources/microshift-config.resource Resource ../../resources/microshift-network.resource Resource ../../resources/microshift-process.resource @@ -38,6 +40,11 @@ ${HTTP01_ISSUER_NAME} letsencrypt-http01 ${HTTP01_CERT_NAME} cert-from-${HTTP01_ISSUER_NAME} ${HTTP01_SECRET_NAME} ${HTTP01_CERT_NAME} ${PEBBLE_DEPLOYMENT_FILE} ./assets/cert-manager/pebble-server.yaml +${HOSTSFILE_ENABLED} SEPARATOR=\n +... --- +... dns: +... \ \ hosts: +... \ \ \ \ status: Enabled *** Test Cases *** @@ -66,7 +73,7 @@ Test Cert manager with local acme server [Setup] Setup Pebble Server ${NAMESPACE} ${dns_name}= Generate Random HostName - Configure DNS For Domain ${USHIFT_HOST} ${dns_name} + Setup DNS For Test ${USHIFT_HOST} ${dns_name} Oc Get JsonPath ingressclass ${EMPTY} openshift-ingress .metadata.name ${http01_issuer_yaml}= Create HTTP01 Issuer YAML Apply YAML Manifest ${http01_issuer_yaml} @@ -80,7 +87,7 @@ Test Cert manager with local acme server [Teardown] Run Keywords ... Cleanup HTTP01 Resources - ... AND Remove DNS Configuration + ... AND Cleanup DNS For Test ${dns_name} *** Keywords *** @@ -376,5 +383,43 @@ Verify Cert Manager Kustomization Success ... ${cursor} ... Applying kustomization at /usr/lib/microshift/manifests.d/060-microshift-cert-manager was successful ... unit=microshift - ... retries=6 - ... wait=5 + ... retries=30 + ... wait=10 + +Resolve Host From Pod + [Documentation] Resolve host from pod + [Arguments] ${hostname} + Wait Until Keyword Succeeds 40x 2s + ... Router Should Resolve Hostname ${hostname} + +Router Should Resolve Hostname + [Documentation] Check if the router pod resolves the given hostname + [Arguments] ${hostname} + ${fuse_device}= Oc Exec router-default nslookup ${hostname} openshift-ingress deployment + Should Contain ${fuse_device} Name: ${hostname} + +Setup DNS For Test + [Documentation] Setup DNS using CoreDNS hosts feature if available, otherwise use legacy method + [Arguments] ${ip_address} ${dns_name} + ${config}= Show Config default + TRY + VAR ${hosts}= ${config}[dns][hosts] + Add Entry To Hosts ${ip_address} ${dns_name} /etc/hosts + Drop In MicroShift Config ${HOSTSFILE_ENABLED} 20-dns + Restart MicroShift + EXCEPT + Configure DNS For Domain ${ip_address} ${dns_name} + END + +Cleanup DNS For Test + [Documentation] Cleanup DNS configuration based on method used + [Arguments] ${dns_name} + ${config}= Show Config default + TRY + VAR ${hosts}= ${config}[dns][hosts] + Remove Entry From Hosts ${dns_name} + Remove Drop In MicroShift Config 20-dns + Restart MicroShift + EXCEPT + Remove DNS Configuration + END diff --git a/test/suites/standard1/dns.robot b/test/suites/standard1/dns.robot index f5c2006ee9..75ddb2234a 100644 --- a/test/suites/standard1/dns.robot +++ b/test/suites/standard1/dns.robot @@ -1,5 +1,5 @@ *** Settings *** -Documentation Networking smoke tests +Documentation Core DNS smoke tests Resource ../../resources/common.resource Resource ../../resources/oc.resource @@ -32,6 +32,11 @@ ${HOSTS_CONFIG_CUSTOM} SEPARATOR=\n ... \ \ hosts: ... \ \ \ status: Enabled ... \ \ \ file: ${CUSTOM_HOSTS_FILE} +${HOSTSFILE_DISABLED} SEPARATOR=\n +... --- +... dns: +... \ \ hosts: +... \ \ \ status: Disabled *** Test Cases *** @@ -47,6 +52,25 @@ Resolve Host from Non-Default Hosts File Resolve Host From Pod ${HOSTNAME} [Teardown] Teardown Hosts File ${HOSTNAME} +Dynamic Hosts File Update Without Restart + [Documentation] Verify hosts file changes are reflected without MicroShift or pod restarts + [Setup] Setup With Custom Config ${HOSTS_CONFIG_CUSTOM} ${CUSTOM_HOSTS_FILE} + Resolve Host From Pod ${HOSTNAME} + ${updated_hostname}= Generate Random HostName + Add Entry To Hosts ${FAKE_LISTEN_IP} ${updated_hostname} ${CUSTOM_HOSTS_FILE} + Resolve Host From Pod ${updated_hostname} + [Teardown] Run Keywords + ... Remove Entry From Hosts ${updated_hostname} ${CUSTOM_HOSTS_FILE} + ... AND Teardown Hosts File ${HOSTNAME} + +Disable CoreDNS Hosts And Verify ConfigMap Removed + [Documentation] Enable CoreDNS hosts, then disable it and verify hosts-file configmap is removed + [Setup] Setup With Custom Config ${HOSTSFILE_ENABLED} /etc/hosts + Disable CoreDNS Hosts + Run Keyword And Expect Error 1 != 0 + ... Oc Get configmap openshift-dns hosts-file + [Teardown] Teardown Hosts File ${HOSTNAME} + *** Keywords *** Resolve Host From Pod @@ -107,3 +131,8 @@ Check CoreDNS Hosts Feature EXCEPT Skip CoreDNS hosts feature not available in this MicroShift version END + +Disable CoreDNS Hosts + [Documentation] Disable CoreDNS hosts feature + Drop In MicroShift Config ${HOSTSFILE_DISABLED} 20-dns + Restart MicroShift diff --git a/test/suites/tuned/uncore-cache.robot b/test/suites/tuned/uncore-cache.robot new file mode 100644 index 0000000000..7f23269988 --- /dev/null +++ b/test/suites/tuned/uncore-cache.robot @@ -0,0 +1,86 @@ +*** Settings *** +Documentation Tests for Workload partitioning + +Library ../../resources/journalctl.py +Resource ../../resources/microshift-config.resource +Resource ../../resources/common.resource +Resource ../../resources/microshift-process.resource + +Suite Setup Run Keywords +... Setup Suite +... AND Check FeatureGates Is Enabled +Suite Teardown Teardown Suite + + +*** Variables *** +${MANAGEMENT_CPU} 0 +${KUBELET_CPU_STATE_FILE} /var/lib/kubelet/cpu_manager_state + + +*** Test Cases *** +Workload Partitioning Should Work With Uncore-cache + [Documentation] Verify that all the Control Plane pods are properly annotated. + [Setup] Configure Kubelet For Uncore-Cache ${MANAGEMENT_CPU} + Verify Uncore-cache Feature Is Enabled + [Teardown] Teardown For Workload Partitioning With Uncore-cache + + +*** Keywords *** +Teardown For Workload Partitioning With Uncore-cache + [Documentation] Teardown for Workload Partitioning with Uncore-cache + Remove Drop In MicroShift Config 11-kubelet-uncore-cache + Cleanup CPU State + Restart MicroShift + +Configure Kubelet For Uncore-Cache + [Documentation] configure microshift with kubelet CPU configuration + [Arguments] ${cpus} + + ${kubelet_config}= CATENATE SEPARATOR=\n + ... --- + ... apiServer: + ... \ \ featureGates: + ... \ \ \ \ featureSet: "CustomNoUpgrade" + ... \ \ \ \ customNoUpgrade: + ... \ \ \ \ \ \ enabled: ["CPUManagerPolicyBetaOptions"] + ... kubelet: + ... \ \ reservedSystemCPUs: "${cpus}" + ... \ \ cpuManagerPolicy: static + ... \ \ cpuManagerPolicyOptions: + ... \ \ \ \ prefer-align-cpus-by-uncorecache: "true" + Drop In MicroShift Config ${kubelet_config} 11-kubelet-uncore-cache + Cleanup CPU State + +Verify Uncore-cache Feature Is Enabled + [Documentation] Verify that the kubelet uncore-cache feature is enabled + ${cursor}= Get Journal Cursor + Restart MicroShift + Pattern Should Appear In Log Output + ... ${cursor} + ... kube-apiserver I.*CPUManagerPolicyBetaOptions=true + ... unit=microshift + ... wait=5 + Pattern Should Appear In Log Output + ... ${cursor} + ... kubelet I.*CPUManagerPolicyBetaOptions:true + ... unit=microshift + ... wait=5 + Pattern Should Appear In Log Output + ... ${cursor} + ... kubelet I.*prefer-align-cpus-by-uncorecache":"true" + ... unit=microshift + ... wait=5 + +Cleanup CPU State + [Documentation] cleanup microshift and recreate the namespace for workloads + Cleanup MicroShift --all --keep-images + Remove Files ${KUBELET_CPU_STATE_FILE} + +Check FeatureGates Is Enabled + [Documentation] Skip suite if CoreDNS hosts feature is not available + ${config}= Show Config default + TRY + VAR ${featuregates}= ${config}[apiServer][featureGates] + EXCEPT + Skip CoreDNS hosts feature not available in this MicroShift version + END diff --git a/test/suites/tuned/workload-partitioning.robot b/test/suites/tuned/workload-partitioning.robot index f567f6ad78..d45512e3cf 100644 --- a/test/suites/tuned/workload-partitioning.robot +++ b/test/suites/tuned/workload-partitioning.robot @@ -247,16 +247,6 @@ Crio Process ID Log ${stderr} RETURN ${stdout} -Remove Files - [Documentation] removes files from the microshit host - [Arguments] @{files} - Log ${files} - ${files_path}= Catenate SEPARATOR=${SPACE} @{files} - ${stdout} ${stderr} ${rc}= Execute Command - ... rm -f ${files_path} - ... sudo=True return_stdout=True return_stderr=True return_rc=True - Should Be Equal As Integers ${rc} 0 - Cleanup And Create NS [Documentation] cleanup microshift and recreate the namespace for workloads Cleanup MicroShift --all --keep-images diff --git a/vendor/github.com/openshift/api/.golangci.yaml b/vendor/github.com/openshift/api/.golangci.yaml index 649f9bed35..8da22c5e51 100644 --- a/vendor/github.com/openshift/api/.golangci.yaml +++ b/vendor/github.com/openshift/api/.golangci.yaml @@ -11,7 +11,9 @@ linters: settings: linters: enable: + - forbiddenmarkers - maxlength + - namingconventions - nobools - nomaps - statussubresource @@ -20,6 +22,13 @@ linters: isFirstField: Warn usePatchStrategy: Ignore useProtobuf: Ignore + forbiddenmarkers: + markers: + - identifier: "openshift:enable:FeatureSets" + - identifier: "openshift:validation:FeatureSetAwareEnum" + - identifier: "openshift:validation:FeatureSetAwareXValidation" + - identifier: "kubebuilder:validation:UniqueItems" + - identifier: "kubebuilder:validation:Pattern" # Use CEL expressions instead optionalfields: pointers: preference: WhenRequired @@ -33,7 +42,7 @@ linters: # This will force omitzero on optional struct fields. # This means they can be omitted correctly and prevents the need for pointers to structs. policy: SuggestFix - requiredFields: + requiredfields: pointers: # This will force pointers when the field is required, but only when the zero # value is a valid user choice, and has a semantic difference to being omitted (e.g. replicas allows 0). @@ -47,7 +56,18 @@ linters: # This will force omitzero on required struct fields. # This means they can be omitted correctly and prevents the need for pointers to structs. policy: SuggestFix - uniqueMarkers: + namingconventions: + conventions: + - name: norefs + violationMatcher: "(?i)ref(erence)?s?$" + operation: Drop + message: "reference fields should not need to be named ref(s)/reference(s)" + - name: nokind + violationMatcher: "^Kind$" + operation: Replacement + replacement: "Resource" + message: "API Kinds can be ambiguous and should be replaced with Resource" + uniquemarkers: customMarkers: - identifier: "openshift:validation:FeatureGateAwareEnum" attributes: diff --git a/vendor/github.com/openshift/api/AGENTS.md b/vendor/github.com/openshift/api/AGENTS.md index a009bbb2de..0e39032433 100644 --- a/vendor/github.com/openshift/api/AGENTS.md +++ b/vendor/github.com/openshift/api/AGENTS.md @@ -32,6 +32,21 @@ make clean # Clean build artifacts make update # Alias for update-codegen-crds ``` +#### Targeted Code Generation +When working on a specific API group/version, you can regenerate only the affected CRDs instead of all CRDs: + +```bash +# Regenerate CRDs for a specific API group/version +make update-codegen-crds API_GROUP_VERSIONS=operator.openshift.io/v1alpha1 +make update-codegen-crds API_GROUP_VERSIONS=config.openshift.io/v1 +make update-codegen-crds API_GROUP_VERSIONS=route.openshift.io/v1 + +# Multiple API groups can be specified with comma separation +make update-codegen-crds API_GROUP_VERSIONS=operator.openshift.io/v1alpha1,config.openshift.io/v1 +``` + +This is more efficient than running `make update` (which regenerates all CRDs) when you're only working on specific API groups. + ### Testing ```bash make test-unit # Run unit tests diff --git a/vendor/github.com/openshift/api/Makefile b/vendor/github.com/openshift/api/Makefile index fd4268a789..c069d80401 100644 --- a/vendor/github.com/openshift/api/Makefile +++ b/vendor/github.com/openshift/api/Makefile @@ -1,7 +1,7 @@ all: build .PHONY: all -update: update-codegen-crds +update: update-non-codegen update-codegen RUNTIME ?= podman RUNTIME_IMAGE_NAME ?= registry.ci.openshift.org/openshift/release:rhel-9-release-golang-1.24-openshift-4.20 @@ -17,10 +17,8 @@ test-unit: # # BEGIN: Update codegen-crds. Defaults to generating updates for all API packages. # To run a subset of packages: -# - Filter by group with make update-codegen-crds- -# E.g. make update-codegen-crds-machine -# - Set API_GROUP_VERSIONS to a space separated list of /. -# E.g. API_GROUP_VERSIONS="apps/v1 build/v1" make update-codegen-crds. +# - Set API_GROUP_VERSIONS to a space separated list of fully qualified /. +# E.g. API_GROUP_VERSIONS="apps.openshift.io/v1 build.openshift.io/v1" make update-codegen-crds. # FeatureSet generation is controlled at the group level by the # .codegen.yaml file. # @@ -57,23 +55,28 @@ verify-lint-fix: make lint-fix 2>/dev/null || true git diff --exit-code -.PHONY: verify-scripts -verify-scripts: - bash -x hack/verify-deepcopy.sh - bash -x hack/verify-openapi.sh +# Verify codegen runs all verifiers in the order they are defined in the root.go file. +# This includes all generators defined in update-codegen, but also the crd-schema-checker and crdify verifiers. +.PHONY: verify-codegen +verify-codegen: + EXTRA_ARGS=--verify hack/update-codegen.sh + +.PHONY: verify-non-codegen +verify-non-codegen: bash -x hack/verify-protobuf.sh - bash -x hack/verify-swagger-docs.sh hack/verify-crds.sh bash -x hack/verify-types.sh - bash -x hack/verify-compatibility.sh bash -x hack/verify-integration-tests.sh bash -x hack/verify-group-versions.sh bash -x hack/verify-prerelease-lifecycle-gen.sh hack/verify-payload-crds.sh hack/verify-payload-featuregates.sh +.PHONY: verify-scripts +verify-scripts: verify-non-codegen verify-codegen + .PHONY: verify -verify: verify-scripts lint verify-crd-schema verify-crdify verify-codegen-crds +verify: verify-scripts lint .PHONY: verify-codegen-crds verify-codegen-crds: @@ -99,8 +102,8 @@ verify-%: ################################################################################################ # # BEGIN: Update scripts. Defaults to generating updates for all API packages. -# Set API_GROUP_VERSIONS to a space separated list of / to limit -# the scope of the updates. Eg API_GROUP_VERSIONS="apps/v1 build/v1" make update-scripts. +# Set API_GROUP_VERSIONS to a space separated list of fully qualified / to limit +# the scope of the updates. Eg API_GROUP_VERSIONS="apps.openshift.io/v1 build.openshift.io/v1" make update-scripts. # Note: Protobuf generation is handled separately, see hack/lib/init.sh. # ################################################################################################ @@ -108,6 +111,19 @@ verify-%: .PHONY: update-scripts update-scripts: update-compatibility update-openapi update-deepcopy update-protobuf update-swagger-docs tests-vendor update-prerelease-lifecycle-gen update-payload-featuregates +# Update codegen runs all generators in the order they are defined in the root.go file. +# The per group generators are:[compatibility, deepcopy, swagger-docs, empty-partial-schema, schema-patch, crd-manifest-merge] +# The multi group generators are:[openapi] +.PHONY: update-codegen +update-codegen: + hack/update-codegen.sh + +# Update non-codegen runs all generators that are not part of the codegen utility, or +# are part of it, but are not run by default when invoking codegen without a specific generator. +# E.g. the payload feature gates which is not part of the generator style, but is still a subcommand. +.PHONY: update-non-codegen +update-non-codegen: update-protobuf tests-vendor update-prerelease-lifecycle-gen update-payload-crds update-payload-featuregates + .PHONY: update-compatibility update-compatibility: hack/update-compatibility.sh diff --git a/vendor/github.com/openshift/api/config/v1/types_cluster_version.go b/vendor/github.com/openshift/api/config/v1/types_cluster_version.go index cfac9689e4..e5aad151ea 100644 --- a/vendor/github.com/openshift/api/config/v1/types_cluster_version.go +++ b/vendor/github.com/openshift/api/config/v1/types_cluster_version.go @@ -72,8 +72,10 @@ type ClusterVersionSpec struct { // // If an upgrade fails the operator will halt and report status // about the failing component. Setting the desired update value back to - // the previous version will cause a rollback to be attempted. Not all - // rollbacks will succeed. + // the previous version will cause a rollback to be attempted if the + // previous version is within the current minor version. Not all + // rollbacks will succeed, and some may unrecoverably break the + // cluster. // // +optional DesiredUpdate *Update `json:"desiredUpdate,omitempty"` @@ -718,10 +720,14 @@ type Update struct { Image string `json:"image"` // force allows an administrator to update to an image that has failed - // verification or upgradeable checks. This option should only - // be used when the authenticity of the provided image has been verified out - // of band because the provided image will run with full administrative access - // to the cluster. Do not use this flag with images that comes from unknown + // verification or upgradeable checks that are designed to keep your + // cluster safe. Only use this if: + // * you are testing unsigned release images in short-lived test clusters or + // * you are working around a known bug in the cluster-version + // operator and you have verified the authenticity of the provided + // image yourself. + // The provided image will run with full administrative access + // to the cluster. Do not use this flag with images that come from unknown // or potentially malicious sources. // // +optional diff --git a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go index effafde644..2f80945d38 100644 --- a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go @@ -183,6 +183,17 @@ const ( LoadBalancerTypeOpenShiftManagedDefault PlatformLoadBalancerType = "OpenShiftManagedDefault" ) +// DNSRecordsType defines whether api, api-int, and ingress records are provided by +// the internal DNS infrastructure or must be configured external to the cluster. +// +kubebuilder:validation:Enum=Internal;External +// +enum +type DNSRecordsType string + +const ( + DNSRecordsTypeExternal DNSRecordsType = "External" + DNSRecordsTypeInternal DNSRecordsType = "Internal" +) + // PlatformType is a specific supported infrastructure provider. // +kubebuilder:validation:Enum="";AWS;Azure;BareMetal;GCP;Libvirt;OpenStack;None;VSphere;oVirt;IBMCloud;KubeVirt;EquinixMetal;PowerVS;AlibabaCloud;Nutanix;External type PlatformType string @@ -491,6 +502,21 @@ type AWSServiceEndpoint struct { URL string `json:"url"` } +// IPFamilyType represents the IP protocol family that cloud platform resources should use. +// +kubebuilder:validation:Enum=IPv4;DualStackIPv6Primary;DualStackIPv4Primary +type IPFamilyType string + +const ( + // IPv4 indicates that cloud platform resources should use IPv4 addressing only. + IPv4 IPFamilyType = "IPv4" + + // DualStackIPv6Primary indicates that cloud platform resources should use dual-stack networking with IPv6 as primary. + DualStackIPv6Primary IPFamilyType = "DualStackIPv6Primary" + + // DualStackIPv4Primary indicates that cloud platform resources should use dual-stack networking with IPv4 as primary. + DualStackIPv4Primary IPFamilyType = "DualStackIPv4Primary" +) + // AWSPlatformSpec holds the desired state of the Amazon Web Services infrastructure provider. // This only includes fields that can be modified in the cluster. type AWSPlatformSpec struct { @@ -536,6 +562,18 @@ type AWSPlatformStatus struct { // +optional // +nullable CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"` + + // ipFamily specifies the IP protocol family that should be used for AWS + // network resources. This controls whether AWS resources are created with + // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + // protocol family. + // + // +default="IPv4" + // +kubebuilder:default="IPv4" + // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="ipFamily is immutable once set" + // +openshift:enable:FeatureGate=AWSDualStackInstall + // +optional + IPFamily IPFamilyType `json:"ipFamily,omitempty"` } // AWSResourceTag is a tag to apply to AWS resources created for the cluster. @@ -607,6 +645,18 @@ type AzurePlatformStatus struct { // +openshift:enable:FeatureGate=AzureClusterHostedDNSInstall // +optional CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"` + + // ipFamily specifies the IP protocol family that should be used for Azure + // network resources. This controls whether Azure resources are created with + // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + // protocol family. + // + // +default="IPv4" + // +kubebuilder:default="IPv4" + // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="ipFamily is immutable once set" + // +openshift:enable:FeatureGate=AzureDualStackInstall + // +optional + IPFamily IPFamilyType `json:"ipFamily,omitempty"` } // AzureResourceTag is a tag to apply to Azure resources created for the cluster. @@ -983,6 +1033,7 @@ type BareMetalPlatformSpec struct { // BareMetalPlatformStatus holds the current status of the BareMetal infrastructure provider. // For more information about the network architecture used with the BareMetal platform type, see: // https://github.com/openshift/installer/blob/master/docs/design/baremetal/networking-infrastructure.md +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type BareMetalPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1035,6 +1086,22 @@ type BareMetalPlatformStatus struct { // +optional LoadBalancer *BareMetalPlatformLoadBalancer `json:"loadBalancer,omitempty"` + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` + // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. // +listType=atomic // +kubebuilder:validation:MaxItems=32 @@ -1111,6 +1178,7 @@ type OpenStackPlatformSpec struct { } // OpenStackPlatformStatus holds the current status of the OpenStack infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type OpenStackPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1167,6 +1235,22 @@ type OpenStackPlatformStatus struct { // +optional LoadBalancer *OpenStackPlatformLoadBalancer `json:"loadBalancer,omitempty"` + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` + // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. // +listType=atomic // +kubebuilder:validation:MaxItems=32 @@ -1201,6 +1285,7 @@ type OvirtPlatformLoadBalancer struct { type OvirtPlatformSpec struct{} // OvirtPlatformStatus holds the current status of the oVirt infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type OvirtPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1247,6 +1332,22 @@ type OvirtPlatformStatus struct { // +kubebuilder:default={"type": "OpenShiftManagedDefault"} // +optional LoadBalancer *OvirtPlatformLoadBalancer `json:"loadBalancer,omitempty"` + + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` } // VSpherePlatformLoadBalancer defines the load balancer used by the cluster on VSphere platform. @@ -1644,6 +1745,7 @@ type VSpherePlatformSpec struct { } // VSpherePlatformStatus holds the current status of the vSphere infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type VSpherePlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -1696,6 +1798,22 @@ type VSpherePlatformStatus struct { // +optional LoadBalancer *VSpherePlatformLoadBalancer `json:"loadBalancer,omitempty"` + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` + // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. // +listType=atomic // +kubebuilder:validation:MaxItems=32 @@ -2069,6 +2187,7 @@ type NutanixPrismElementEndpoint struct { } // NutanixPlatformStatus holds the current status of the Nutanix infrastructure provider. +// +openshift:validation:FeatureGateAwareXValidation:featureGate=OnPremDNSRecords,rule="!has(self.dnsRecordsType) || self.dnsRecordsType == 'Internal' || (has(self.loadBalancer) && self.loadBalancer.type == 'UserManaged')",message="dnsRecordsType may only be set to External when loadBalancer.type is UserManaged" type NutanixPlatformStatus struct { // apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used // by components inside the cluster, like kubelets using the infrastructure rather @@ -2112,6 +2231,22 @@ type NutanixPlatformStatus struct { // +kubebuilder:default={"type": "OpenShiftManagedDefault"} // +optional LoadBalancer *NutanixPlatformLoadBalancer `json:"loadBalancer,omitempty"` + + // dnsRecordsType determines whether records for api, api-int, and ingress + // are provided by the internal DNS service or externally. + // Allowed values are `Internal`, `External`, and omitted. + // When set to `Internal`, records are provided by the internal infrastructure and + // no additional user configuration is required for the cluster to function. + // When set to `External`, records are not provided by the internal infrastructure + // and must be configured by the user on a DNS server outside the cluster. + // Cluster nodes must use this external server for their upstream DNS requests. + // This value may only be set when loadBalancer.type is set to UserManaged. + // When omitted, this means the user has no opinion and the platform is left + // to choose reasonable defaults. These defaults are subject to change over time. + // The current default is `Internal`. + // +openshift:enable:FeatureGate=OnPremDNSRecords + // +optional + DNSRecordsType DNSRecordsType `json:"dnsRecordsType,omitempty"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml index d8d6b502ee..a1d37f65d0 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml @@ -362,7 +362,9 @@ infrastructures.config.openshift.io: Category: "" FeatureGates: - AWSClusterHostedDNSInstall + - AWSDualStackInstall - AzureClusterHostedDNSInstall + - AzureDualStackInstall - DualReplica - DyanmicServiceEndpointIBMCloud - GCPClusterHostedDNSInstall @@ -370,6 +372,7 @@ infrastructures.config.openshift.io: - HighlyAvailableArbiter - HighlyAvailableArbiter+DualReplica - NutanixMultiSubnets + - OnPremDNSRecords - VSphereHostVMGroupZonal - VSphereMultiNetworks FilenameOperatorName: config-operator diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go index 31aab4dfe8..b9d0799fbd 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go @@ -777,7 +777,7 @@ func (ClusterVersionList) SwaggerDoc() map[string]string { var map_ClusterVersionSpec = map[string]string{ "": "ClusterVersionSpec is the desired version state of the cluster. It includes the version the cluster should be at, how the cluster is identified, and where the cluster should look for version updates.", "clusterID": "clusterID uniquely identifies this cluster. This is expected to be an RFC4122 UUID value (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx in hexadecimal values). This is a required field.", - "desiredUpdate": "desiredUpdate is an optional field that indicates the desired value of the cluster version. Setting this value will trigger an upgrade (if the current version does not match the desired version). The set of recommended update values is listed as part of available updates in status, and setting values outside that range may cause the upgrade to fail.\n\nSome of the fields are inter-related with restrictions and meanings described here. 1. image is specified, version is specified, architecture is specified. API validation error. 2. image is specified, version is specified, architecture is not specified. The version extracted from the referenced image must match the specified version. 3. image is specified, version is not specified, architecture is specified. API validation error. 4. image is specified, version is not specified, architecture is not specified. image is used. 5. image is not specified, version is specified, architecture is specified. version and desired architecture are used to select an image. 6. image is not specified, version is specified, architecture is not specified. version and current architecture are used to select an image. 7. image is not specified, version is not specified, architecture is specified. API validation error. 8. image is not specified, version is not specified, architecture is not specified. API validation error.\n\nIf an upgrade fails the operator will halt and report status about the failing component. Setting the desired update value back to the previous version will cause a rollback to be attempted. Not all rollbacks will succeed.", + "desiredUpdate": "desiredUpdate is an optional field that indicates the desired value of the cluster version. Setting this value will trigger an upgrade (if the current version does not match the desired version). The set of recommended update values is listed as part of available updates in status, and setting values outside that range may cause the upgrade to fail.\n\nSome of the fields are inter-related with restrictions and meanings described here. 1. image is specified, version is specified, architecture is specified. API validation error. 2. image is specified, version is specified, architecture is not specified. The version extracted from the referenced image must match the specified version. 3. image is specified, version is not specified, architecture is specified. API validation error. 4. image is specified, version is not specified, architecture is not specified. image is used. 5. image is not specified, version is specified, architecture is specified. version and desired architecture are used to select an image. 6. image is not specified, version is specified, architecture is not specified. version and current architecture are used to select an image. 7. image is not specified, version is not specified, architecture is specified. API validation error. 8. image is not specified, version is not specified, architecture is not specified. API validation error.\n\nIf an upgrade fails the operator will halt and report status about the failing component. Setting the desired update value back to the previous version will cause a rollback to be attempted if the previous version is within the current minor version. Not all rollbacks will succeed, and some may unrecoverably break the cluster.", "upstream": "upstream may be used to specify the preferred update server. By default it will use the appropriate update server for the cluster and region.", "channel": "channel is an identifier for explicitly requesting a non-default set of updates to be applied to this cluster. The default channel will contain stable updates that are appropriate for production clusters.", "capabilities": "capabilities configures the installation of optional, core cluster components. A null value here is identical to an empty object; see the child properties for default semantics.", @@ -878,7 +878,7 @@ var map_Update = map[string]string{ "architecture": "architecture is an optional field that indicates the desired value of the cluster architecture. In this context cluster architecture means either a single architecture or a multi architecture. architecture can only be set to Multi thereby only allowing updates from single to multi architecture. If architecture is set, image cannot be set and version must be set. Valid values are 'Multi' and empty.", "version": "version is a semantic version identifying the update version. version is required if architecture is specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", "image": "image is a container image location that contains the update. image should be used when the desired version does not exist in availableUpdates or history. When image is set, architecture cannot be specified. If both version and image are set, the version extracted from the referenced image must match the specified version.", - "force": "force allows an administrator to update to an image that has failed verification or upgradeable checks. This option should only be used when the authenticity of the provided image has been verified out of band because the provided image will run with full administrative access to the cluster. Do not use this flag with images that comes from unknown or potentially malicious sources.", + "force": "force allows an administrator to update to an image that has failed verification or upgradeable checks that are designed to keep your cluster safe. Only use this if: * you are testing unsigned release images in short-lived test clusters or * you are working around a known bug in the cluster-version\n operator and you have verified the authenticity of the provided\n image yourself.\nThe provided image will run with full administrative access to the cluster. Do not use this flag with images that come from unknown or potentially malicious sources.", } func (Update) SwaggerDoc() map[string]string { @@ -1410,6 +1410,7 @@ var map_AWSPlatformStatus = map[string]string{ "serviceEndpoints": "serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.", "resourceTags": "resourceTags is a list of additional tags to apply to AWS resources created for the cluster. See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags available for the user.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "ipFamily": "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", } func (AWSPlatformStatus) SwaggerDoc() map[string]string { @@ -1481,6 +1482,7 @@ var map_AzurePlatformStatus = map[string]string{ "armEndpoint": "armEndpoint specifies a URL to use for resource management in non-soverign clouds such as Azure Stack.", "resourceTags": "resourceTags is a list of additional tags to apply to Azure resources created for the cluster. See https://docs.microsoft.com/en-us/rest/api/resources/tags for information on tagging Azure resources. Due to limitations on Automation, Content Delivery Network, DNS Azure resources, a maximum of 15 tags may be applied. OpenShift reserves 5 tags for internal use, allowing 10 tags for user configuration.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "ipFamily": "ipFamily specifies the IP protocol family that should be used for Azure network resources. This controls whether Azure resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", } func (AzurePlatformStatus) SwaggerDoc() map[string]string { @@ -1525,6 +1527,7 @@ var map_BareMetalPlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", "machineNetworks": "machineNetworks are IP networks used to connect all the OpenShift cluster nodes.", } @@ -1787,6 +1790,7 @@ var map_NutanixPlatformStatus = map[string]string{ "ingressIP": "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.\n\nDeprecated: Use IngressIPs instead.", "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", } func (NutanixPlatformStatus) SwaggerDoc() map[string]string { @@ -1853,6 +1857,7 @@ var map_OpenStackPlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for OpenStack deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", "machineNetworks": "machineNetworks are IP networks used to connect all the OpenShift cluster nodes.", } @@ -1885,6 +1890,7 @@ var map_OvirtPlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", } func (OvirtPlatformStatus) SwaggerDoc() map[string]string { @@ -2067,6 +2073,7 @@ var map_VSpherePlatformStatus = map[string]string{ "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.", "nodeDNSIP": "nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.", "loadBalancer": "loadBalancer defines how the load balancer used by the cluster is configured.", + "dnsRecordsType": "dnsRecordsType determines whether records for api, api-int, and ingress are provided by the internal DNS service or externally. Allowed values are `Internal`, `External`, and omitted. When set to `Internal`, records are provided by the internal infrastructure and no additional user configuration is required for the cluster to function. When set to `External`, records are not provided by the internal infrastructure and must be configured by the user on a DNS server outside the cluster. Cluster nodes must use this external server for their upstream DNS requests. This value may only be set when loadBalancer.type is set to UserManaged. When omitted, this means the user has no opinion and the platform is left to choose reasonable defaults. These defaults are subject to change over time. The current default is `Internal`.", "machineNetworks": "machineNetworks are IP networks used to connect all the OpenShift cluster nodes.", } diff --git a/vendor/github.com/openshift/api/envtest-releases.yaml b/vendor/github.com/openshift/api/envtest-releases.yaml index e8688e2b06..e495e02796 100644 --- a/vendor/github.com/openshift/api/envtest-releases.yaml +++ b/vendor/github.com/openshift/api/envtest-releases.yaml @@ -64,3 +64,16 @@ releases: envtest-v1.33.2-linux-arm64.tar.gz: hash: 9936eba66fd0170808268da4c0609b7e7d4d1b0de8607b0d3a9091539b4ec881041a9e08e7b4839708b11139bcc850acd34dfc0305ed955cc61fc3fae9da58f5 selfLink: https://storage.googleapis.com/openshift-kubebuilder-tools/envtest-v1.33.2-linux-arm64.tar.gz + v1.34.1: + envtest-v1.34.1-darwin-amd64.tar.gz: + hash: 3bf575e77d35803b81685969915d70ae23f2267bafd1fe17087126d6fcdfe67590d2f51ce59ff8f0d06e5d94b0f4d0ac3c16de1544008e9c617499cfc51844c5 + selfLink: https://storage.googleapis.com/openshift-kubebuilder-tools/envtest-v1.34.1-darwin-amd64.tar.gz + envtest-v1.34.1-darwin-arm64.tar.gz: + hash: 3c9c1d457d3fbb5c5cfb6e6c4ac31b41172cf413b9a81f8f53ac717a643f730d135d4d09549f9d78685c23704a7e3f12c891896dc23c4b1a211a10e1fd9bc043 + selfLink: https://storage.googleapis.com/openshift-kubebuilder-tools/envtest-v1.34.1-darwin-arm64.tar.gz + envtest-v1.34.1-linux-amd64.tar.gz: + hash: e5aeda6d9f9456e27c5c001bc4476a0bccc06f1431c2a9752a2ac040f69671927204dcc254bba8ebb2fb91d0e32620abfaba6daad6a80dbe376d93e57fcd2431 + selfLink: https://storage.googleapis.com/openshift-kubebuilder-tools/envtest-v1.34.1-linux-amd64.tar.gz + envtest-v1.34.1-linux-arm64.tar.gz: + hash: e2ee7e47ceeba56624fd869922ab9851200482ef835c09fe3dd57c9806a992a7e1f56641906510ebb095514953aa8a3af68d45a82be45b94981a50e894ac6e42 + selfLink: https://storage.googleapis.com/openshift-kubebuilder-tools/envtest-v1.34.1-linux-arm64.tar.gz diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md index 54c9fd3dea..64a97692ef 100644 --- a/vendor/github.com/openshift/api/features.md +++ b/vendor/github.com/openshift/api/features.md @@ -5,17 +5,16 @@ | MachineAPIOperatorDisableMachineHealthCheckController| | | | | | | | MultiArchInstallAzure| | | | | | | | ShortCertRotation| | | | | | | -| BootImageSkewEnforcement| | | Enabled | Enabled | | | | ClusterAPIMachineManagementVSphere| | | Enabled | Enabled | | | | Example2| | | Enabled | Enabled | | | | ExternalSnapshotMetadata| | | Enabled | Enabled | | | +| IngressControllerDynamicConfigurationManager| | | Enabled | Enabled | | | | NewOLMCatalogdAPIV1Metas| | | | Enabled | | Enabled | | NewOLMOwnSingleNamespace| | | | Enabled | | Enabled | | NewOLMPreflightPermissionChecks| | | | Enabled | | Enabled | -| NewOLMWebhookProviderOpenshiftServiceCA| | | | Enabled | | Enabled | | NoRegistryClusterOperations| | | | Enabled | | Enabled | -| VSphereMixedNodeEnv| | | Enabled | Enabled | | | | NewOLM| | Enabled | | Enabled | | Enabled | +| NewOLMWebhookProviderOpenshiftServiceCA| | Enabled | | Enabled | | Enabled | | AWSClusterHostedDNS| | | Enabled | Enabled | Enabled | Enabled | | AWSClusterHostedDNSInstall| | | Enabled | Enabled | Enabled | Enabled | | AWSDedicatedHosts| | | Enabled | Enabled | Enabled | Enabled | @@ -26,11 +25,14 @@ | AzureDedicatedHosts| | | Enabled | Enabled | Enabled | Enabled | | AzureDualStackInstall| | | Enabled | Enabled | Enabled | Enabled | | AzureMultiDisk| | | Enabled | Enabled | Enabled | Enabled | +| BootImageSkewEnforcement| | | Enabled | Enabled | Enabled | Enabled | | BootcNodeManagement| | | Enabled | Enabled | Enabled | Enabled | | CBORServingAndStorage| | | Enabled | Enabled | Enabled | Enabled | +| CRDCompatibilityRequirementOperator| | | Enabled | Enabled | Enabled | Enabled | | ClientsAllowCBOR| | | Enabled | Enabled | Enabled | Enabled | | ClientsPreferCBOR| | | Enabled | Enabled | Enabled | Enabled | | ClusterAPIInstallIBMCloud| | | Enabled | Enabled | Enabled | Enabled | +| ClusterAPIMachineManagement| | | Enabled | Enabled | Enabled | Enabled | | ClusterMonitoringConfig| | | Enabled | Enabled | Enabled | Enabled | | ClusterVersionOperatorConfiguration| | | Enabled | Enabled | Enabled | Enabled | | DNSNameResolver| | | Enabled | Enabled | Enabled | Enabled | @@ -46,29 +48,29 @@ | GCPDualStackInstall| | | Enabled | Enabled | Enabled | Enabled | | ImageModeStatusReporting| | | Enabled | Enabled | Enabled | Enabled | | ImageStreamImportMode| | | Enabled | Enabled | Enabled | Enabled | -| IngressControllerDynamicConfigurationManager| | | Enabled | Enabled | Enabled | Enabled | | InsightsConfig| | | Enabled | Enabled | Enabled | Enabled | | InsightsOnDemandDataGather| | | Enabled | Enabled | Enabled | Enabled | | IrreconcilableMachineConfig| | | Enabled | Enabled | Enabled | Enabled | | KMSEncryptionProvider| | | Enabled | Enabled | Enabled | Enabled | | MachineAPIMigration| | | Enabled | Enabled | Enabled | Enabled | -| ManagedBootImagesAzure| | | Enabled | Enabled | Enabled | Enabled | | ManagedBootImagesCPMS| | | Enabled | Enabled | Enabled | Enabled | -| ManagedBootImagesvSphere| | | Enabled | Enabled | Enabled | Enabled | | MaxUnavailableStatefulSet| | | Enabled | Enabled | Enabled | Enabled | | MinimumKubeletVersion| | | Enabled | Enabled | Enabled | Enabled | | MixedCPUsAllocation| | | Enabled | Enabled | Enabled | Enabled | | MultiDiskSetup| | | Enabled | Enabled | Enabled | Enabled | +| MutableCSINodeAllocatableCount| | | Enabled | Enabled | Enabled | Enabled | | MutatingAdmissionPolicy| | | Enabled | Enabled | Enabled | Enabled | | NutanixMultiSubnets| | | Enabled | Enabled | Enabled | Enabled | +| OSStreams| | | Enabled | Enabled | Enabled | Enabled | | OVNObservability| | | Enabled | Enabled | Enabled | Enabled | -| PreconfiguredUDNAddresses| | | Enabled | Enabled | Enabled | Enabled | +| OnPremDNSRecords| | | Enabled | Enabled | Enabled | Enabled | | SELinuxMount| | | Enabled | Enabled | Enabled | Enabled | | SignatureStores| | | Enabled | Enabled | Enabled | Enabled | | SigstoreImageVerificationPKI| | | Enabled | Enabled | Enabled | Enabled | | TranslateStreamCloseWebsocketRequests| | | Enabled | Enabled | Enabled | Enabled | | VSphereConfigurableMaxAllowedBlockVolumesPerNode| | | Enabled | Enabled | Enabled | Enabled | | VSphereHostVMGroupZonal| | | Enabled | Enabled | Enabled | Enabled | +| VSphereMixedNodeEnv| | | Enabled | Enabled | Enabled | Enabled | | VolumeGroupSnapshot| | | Enabled | Enabled | Enabled | Enabled | | AdditionalRoutingCapabilities| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | AdminNetworkPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | @@ -88,12 +90,15 @@ | MachineConfigNodes| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ManagedBootImages| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ManagedBootImagesAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| ManagedBootImagesAzure| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| ManagedBootImagesvSphere| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | MetricsCollectionProfiles| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | NetworkDiagnosticsConfig| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | NetworkLiveMigration| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | NetworkSegmentation| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | OpenShiftPodSecurityAdmission| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | PinnedImages| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| PreconfiguredUDNAddresses| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ProcMountType| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | RouteAdvertisements| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | RouteExternalCertificate| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | diff --git a/vendor/github.com/openshift/api/features/features.go b/vendor/github.com/openshift/api/features/features.go index 5d3836a436..9c74d4c2df 100644 --- a/vendor/github.com/openshift/api/features/features.go +++ b/vendor/github.com/openshift/api/features/features.go @@ -342,7 +342,7 @@ var ( contactPerson("rsaini"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1496"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() FeatureGateManagedBootImagesAzure = newFeatureGate("ManagedBootImagesAzure"). @@ -350,7 +350,7 @@ var ( contactPerson("djoshy"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1761"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() FeatureGateManagedBootImagesCPMS = newFeatureGate("ManagedBootImagesCPMS"). @@ -366,7 +366,7 @@ var ( contactPerson("djoshy"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1761"). - enableIn(configv1.DevPreviewNoUpgrade). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() FeatureGateBootcNodeManagement = newFeatureGate("BootcNodeManagement"). @@ -509,8 +509,8 @@ var ( reportProblemsToJiraComponent("olm"). contactPerson("pegoncal"). productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1799"). - enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enhancementPR("https://github.com/openshift/enhancements/pull/1844"). + enableForClusterProfile(SelfManaged, configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() FeatureGateInsightsOnDemandDataGather = newFeatureGate("InsightsOnDemandDataGather"). @@ -553,6 +553,14 @@ var ( enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() + FeatureGateClusterAPIMachineManagement = newFeatureGate("ClusterAPIMachineManagement"). + reportProblemsToJiraComponent("Cloud Compute / Cluster API Providers"). + contactPerson("ddonati"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1465"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateClusterAPIMachineManagementVSphere = newFeatureGate("ClusterAPIMachineManagementVSphere"). reportProblemsToJiraComponent("SPLAT"). contactPerson("jcpowermac"). @@ -624,7 +632,7 @@ var ( contactPerson("miciah"). productScope(ocpSpecific). enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enableIn(configv1.DevPreviewNoUpgrade). mustRegister() FeatureGateMinimumKubeletVersion = newFeatureGate("MinimumKubeletVersion"). @@ -752,8 +760,8 @@ var ( mustRegister() FeatureGateAWSDedicatedHosts = newFeatureGate("AWSDedicatedHosts"). - reportProblemsToJiraComponent("Installer"). - contactPerson("faermanj"). + reportProblemsToJiraComponent("splat"). + contactPerson("rvanderp3"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1781"). enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). @@ -764,7 +772,7 @@ var ( contactPerson("vr4manta"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1772"). - enableIn(configv1.DevPreviewNoUpgrade). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() FeatureGatePreconfiguredUDNAddresses = newFeatureGate("PreconfiguredUDNAddresses"). @@ -772,7 +780,7 @@ var ( contactPerson("kyrtapz"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1793"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). mustRegister() FeatureGateAWSServiceLBNetworkSecurityGroup = newFeatureGate("AWSServiceLBNetworkSecurityGroup"). @@ -885,4 +893,34 @@ var ( enhancementPR("https://github.com/openshift/enhancements/pull/1857"). enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() + + FeatureGateMutableCSINodeAllocatableCount = newFeatureGate("MutableCSINodeAllocatableCount"). + reportProblemsToJiraComponent("Storage / Kubernetes External Components"). + contactPerson("jsafrane"). + productScope(kubernetes). + enhancementPR("https://github.com/kubernetes/enhancements/issues/4876"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateOSStreams = newFeatureGate("OSStreams"). + reportProblemsToJiraComponent("MachineConfigOperator"). + contactPerson("pabrodri"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1874"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + + FeatureGateCRDCompatibilityRequirementOperator = newFeatureGate("CRDCompatibilityRequirementOperator"). + reportProblemsToJiraComponent("Cloud Compute / Cluster API Providers"). + contactPerson("ddonati"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1845"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateOnPremDNSRecords = newFeatureGate("OnPremDNSRecords"). + reportProblemsToJiraComponent("Networking / On-Prem DNS"). + contactPerson("bnemec"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/1803"). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() ) diff --git a/vendor/github.com/openshift/api/machine/v1beta1/types_awsprovider.go b/vendor/github.com/openshift/api/machine/v1beta1/types_awsprovider.go index b3b38bc6cc..161f2324c2 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/types_awsprovider.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/types_awsprovider.go @@ -114,6 +114,14 @@ type AWSMachineProviderConfig struct { // If this value is selected, capacityReservationID must be specified to identify the target reservation. // +optional MarketType MarketType `json:"marketType,omitempty"` + + // hostPlacement configures placement on AWS Dedicated Hosts. This allows admins to assign instances to specific host + // for a variety of needs including for regulatory compliance, to leverage existing per-socket or per-core software licenses (BYOL), + // and to gain visibility and control over instance placement on a physical server. + // When omitted, the instance is not constrained to a dedicated host. + // +openshift:enable:FeatureGate=AWSDedicatedHosts + // +optional + HostPlacement *HostPlacement `json:"hostPlacement,omitempty"` } // AWSConfidentialComputePolicy represents the confidential compute configuration for the instance. @@ -393,3 +401,46 @@ const ( // When set to CapacityBlock the instance utilizes pre-purchased compute capacity (capacity blocks) with AWS Capacity Reservations. MarketTypeCapacityBlock MarketType = "CapacityBlock" ) + +// HostPlacement is the type that will be used to configure the placement of AWS instances. +// +kubebuilder:validation:XValidation:rule="has(self.type) && self.affinity == 'DedicatedHost' ? has(self.dedicatedHost) : !has(self.dedicatedHost)",message="dedicatedHost is required when affinity is DedicatedHost, and forbidden otherwise" +// +union +type HostPlacement struct { + // affinity specifies the affinity setting for the instance. + // Allowed values are AnyAvailable and DedicatedHost. + // When Affinity is set to DedicatedHost, an instance started onto a specific host always restarts on the same host if stopped. In this scenario, the `dedicatedHost` field must be set. + // When Affinity is set to AnyAvailable, and you stop and restart the instance, it can be restarted on any available host. + // +required + // +unionDiscriminator + Affinity *HostAffinity `json:"affinity,omitempty"` + + // dedicatedHost specifies the exact host that an instance should be restarted on if stopped. + // dedicatedHost is required when 'affinity' is set to DedicatedHost, and forbidden otherwise. + // +optional + // +unionMember + DedicatedHost *DedicatedHost `json:"dedicatedHost,omitempty"` +} + +// HostAffinity selects how an instance should be placed on AWS Dedicated Hosts. +// +kubebuilder:validation:Enum:=DedicatedHost;AnyAvailable +type HostAffinity string + +const ( + // HostAffinityAnyAvailable lets the platform select any available dedicated host. + HostAffinityAnyAvailable HostAffinity = "AnyAvailable" + + // HostAffinityDedicatedHost requires specifying a particular host via dedicatedHost.host.hostID. + HostAffinityDedicatedHost HostAffinity = "DedicatedHost" +) + +// DedicatedHost represents the configuration for the usage of dedicated host. +type DedicatedHost struct { + // id identifies the AWS Dedicated Host on which the instance must run. + // The value must start with "h-" followed by 17 lowercase hexadecimal characters (0-9 and a-f). + // Must be exactly 19 characters in length. + // +kubebuilder:validation:XValidation:rule="self.matches('^h-[0-9a-f]{17}$')",message="hostID must start with 'h-' followed by 17 lowercase hexadecimal characters (0-9 and a-f)" + // +kubebuilder:validation:MinLength=19 + // +kubebuilder:validation:MaxLength=19 + // +required + ID string `json:"id,omitempty"` +} diff --git a/vendor/github.com/openshift/api/machine/v1beta1/types_gcpprovider.go b/vendor/github.com/openshift/api/machine/v1beta1/types_gcpprovider.go index 72a31b5bdd..9713a4e4a8 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/types_gcpprovider.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/types_gcpprovider.go @@ -25,6 +25,14 @@ const ( RestartPolicyNever GCPRestartPolicyType = "Never" ) +// GCPProvisioningModelType is a type representing acceptable values for ProvisioningModel field in GCPMachineProviderSpec +type GCPProvisioningModelType string + +const ( + // GCPSpotInstance enables the GCP instances as spot instances which provide significant cost savings but may be preempted by Google Cloud Platform when resources are needed elsewhere. + GCPSpotInstance GCPProvisioningModelType = "Spot" +) + // SecureBootPolicy represents the secure boot configuration for the GCP machine. type SecureBootPolicy string @@ -129,6 +137,14 @@ type GCPMachineProviderSpec struct { // preemptible indicates if created instance is preemptible. // +optional Preemptible bool `json:"preemptible,omitempty"` + // provisioningModel is an optional field that determines the provisioning model for the GCP machine instance. + // Valid values are "Spot" and omitted. + // When set to Spot, the instance runs as a Google Cloud Spot instance which provides significant cost savings but may be preempted by Google Cloud Platform when resources are needed elsewhere. + // When omitted, the machine will be provisioned as a standard on-demand instance. + // This field cannot be used together with the preemptible field. + // +optional + // +kubebuilder:validation:Enum=Spot + ProvisioningModel *GCPProvisioningModelType `json:"provisioningModel,omitempty"` // onHostMaintenance determines the behavior when a maintenance event occurs that might cause the instance to reboot. // This is required to be set to "Terminate" if you want to provision machine with attached GPUs. // Otherwise, allowed values are "Migrate" and "Terminate". diff --git a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go index 5aa4f90a49..92586dcdf1 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.deepcopy.go @@ -85,6 +85,11 @@ func (in *AWSMachineProviderConfig) DeepCopyInto(out *AWSMachineProviderConfig) *out = new(int32) **out = **in } + if in.HostPlacement != nil { + in, out := &in.HostPlacement, &out.HostPlacement + *out = new(HostPlacement) + (*in).DeepCopyInto(*out) + } return } @@ -509,6 +514,22 @@ func (in *DataDiskManagedDiskParameters) DeepCopy() *DataDiskManagedDiskParamete return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedHost) DeepCopyInto(out *DedicatedHost) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedHost. +func (in *DedicatedHost) DeepCopy() *DedicatedHost { + if in == nil { + return nil + } + out := new(DedicatedHost) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DiskEncryptionSetParameters) DeepCopyInto(out *DiskEncryptionSetParameters) { *out = *in @@ -762,6 +783,11 @@ func (in *GCPMachineProviderSpec) DeepCopyInto(out *GCPMachineProviderSpec) { *out = make([]GCPGPUConfig, len(*in)) copy(*out, *in) } + if in.ProvisioningModel != nil { + in, out := &in.ProvisioningModel, &out.ProvisioningModel + *out = new(GCPProvisioningModelType) + **out = **in + } out.ShieldedInstanceConfig = in.ShieldedInstanceConfig if in.ResourceManagerTags != nil { in, out := &in.ResourceManagerTags, &out.ResourceManagerTags @@ -898,6 +924,32 @@ func (in *GCPShieldedInstanceConfig) DeepCopy() *GCPShieldedInstanceConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostPlacement) DeepCopyInto(out *HostPlacement) { + *out = *in + if in.Affinity != nil { + in, out := &in.Affinity, &out.Affinity + *out = new(HostAffinity) + **out = **in + } + if in.DedicatedHost != nil { + in, out := &in.DedicatedHost, &out.DedicatedHost + *out = new(DedicatedHost) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPlacement. +func (in *HostPlacement) DeepCopy() *HostPlacement { + if in == nil { + return nil + } + out := new(HostPlacement) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Image) DeepCopyInto(out *Image) { *out = *in diff --git a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go index 4a1b969a81..23b6eddd37 100644 --- a/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.go @@ -35,6 +35,7 @@ var map_AWSMachineProviderConfig = map[string]string{ "placementGroupPartition": "placementGroupPartition is the partition number within the placement group in which to launch the instance. This must be an integer value between 1 and 7. It is only valid if the placement group, referred in `PlacementGroupName` was created with strategy set to partition.", "capacityReservationId": "capacityReservationId specifies the target Capacity Reservation into which the instance should be launched. The field size should be greater than 0 and the field input must start with cr-***", "marketType": "marketType specifies the type of market for the EC2 instance. Valid values are OnDemand, Spot, CapacityBlock and omitted.\n\nDefaults to OnDemand. When SpotMarketOptions is provided, the marketType defaults to \"Spot\".\n\nWhen set to OnDemand the instance runs as a standard OnDemand instance. When set to Spot the instance runs as a Spot instance. When set to CapacityBlock the instance utilizes pre-purchased compute capacity (capacity blocks) with AWS Capacity Reservations. If this value is selected, capacityReservationID must be specified to identify the target reservation.", + "hostPlacement": "hostPlacement configures placement on AWS Dedicated Hosts. This allows admins to assign instances to specific host for a variety of needs including for regulatory compliance, to leverage existing per-socket or per-core software licenses (BYOL), and to gain visibility and control over instance placement on a physical server. When omitted, the instance is not constrained to a dedicated host.", } func (AWSMachineProviderConfig) SwaggerDoc() map[string]string { @@ -92,6 +93,15 @@ func (CPUOptions) SwaggerDoc() map[string]string { return map_CPUOptions } +var map_DedicatedHost = map[string]string{ + "": "DedicatedHost represents the configuration for the usage of dedicated host.", + "id": "id identifies the AWS Dedicated Host on which the instance must run. The value must start with \"h-\" followed by 17 lowercase hexadecimal characters (0-9 and a-f). Must be exactly 19 characters in length.", +} + +func (DedicatedHost) SwaggerDoc() map[string]string { + return map_DedicatedHost +} + var map_EBSBlockDeviceSpec = map[string]string{ "": "EBSBlockDeviceSpec describes a block device for an EBS volume. https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EbsBlockDevice", "deleteOnTermination": "Indicates whether the EBS volume is deleted on machine termination.\n\nDeprecated: setting this field has no effect.", @@ -116,6 +126,16 @@ func (Filter) SwaggerDoc() map[string]string { return map_Filter } +var map_HostPlacement = map[string]string{ + "": "HostPlacement is the type that will be used to configure the placement of AWS instances.", + "affinity": "affinity specifies the affinity setting for the instance. Allowed values are AnyAvailable and DedicatedHost. When Affinity is set to DedicatedHost, an instance started onto a specific host always restarts on the same host if stopped. In this scenario, the `dedicatedHost` field must be set. When Affinity is set to AnyAvailable, and you stop and restart the instance, it can be restarted on any available host.", + "dedicatedHost": "dedicatedHost specifies the exact host that an instance should be restarted on if stopped. dedicatedHost is required when 'affinity' is set to DedicatedHost, and forbidden otherwise.", +} + +func (HostPlacement) SwaggerDoc() map[string]string { + return map_HostPlacement +} + var map_LoadBalancerReference = map[string]string{ "": "LoadBalancerReference is a reference to a load balancer on AWS.", } @@ -452,6 +472,7 @@ var map_GCPMachineProviderSpec = map[string]string{ "projectID": "projectID is the project in which the GCP machine provider will create the VM.", "gpus": "gpus is a list of GPUs to be attached to the VM.", "preemptible": "preemptible indicates if created instance is preemptible.", + "provisioningModel": "provisioningModel is an optional field that determines the provisioning model for the GCP machine instance. Valid values are \"Spot\" and omitted. When set to Spot, the instance runs as a Google Cloud Spot instance which provides significant cost savings but may be preempted by Google Cloud Platform when resources are needed elsewhere. When omitted, the machine will be provisioned as a standard on-demand instance. This field cannot be used together with the preemptible field.", "onHostMaintenance": "onHostMaintenance determines the behavior when a maintenance event occurs that might cause the instance to reboot. This is required to be set to \"Terminate\" if you want to provision machine with attached GPUs. Otherwise, allowed values are \"Migrate\" and \"Terminate\". If omitted, the platform chooses a default, which is subject to change over time, currently that default is \"Migrate\".", "restartPolicy": "restartPolicy determines the behavior when an instance crashes or the underlying infrastructure provider stops the instance as part of a maintenance event (default \"Always\"). Cannot be \"Always\" with preemptible instances. Otherwise, allowed values are \"Always\" and \"Never\". If omitted, the platform chooses a default, which is subject to change over time, currently that default is \"Always\". RestartPolicy represents AutomaticRestart in GCP compute api", "shieldedInstanceConfig": "shieldedInstanceConfig is the Shielded VM configuration for the VM", diff --git a/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go b/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go index 2799904482..53c71aabb6 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go +++ b/vendor/github.com/openshift/api/operator/v1/types_csi_cluster_driver.go @@ -81,7 +81,6 @@ const ( CinderCSIDriver CSIDriverName = "cinder.csi.openstack.org" VSphereCSIDriver CSIDriverName = "csi.vsphere.vmware.com" ManilaCSIDriver CSIDriverName = "manila.csi.openstack.org" - OvirtCSIDriver CSIDriverName = "csi.ovirt.org" KubevirtCSIDriver CSIDriverName = "csi.kubevirt.io" SharedResourcesCSIDriver CSIDriverName = "csi.sharedresource.openshift.io" AlibabaDiskCSIDriver CSIDriverName = "diskplugin.csi.alibabacloud.com" diff --git a/vendor/github.com/openshift/api/operator/v1/types_ingress.go b/vendor/github.com/openshift/api/operator/v1/types_ingress.go index 2dac08f099..46b906518d 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_ingress.go +++ b/vendor/github.com/openshift/api/operator/v1/types_ingress.go @@ -35,6 +35,7 @@ import ( // // Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer). // +openshift:compatibility-gen:level=1 +// +kubebuilder:validation:XValidation:rule="!has(self.spec.domain) || size('router-' + self.metadata.name + '.' + self.spec.domain) <= 253",message="The combined 'router-' + metadata.name + '.' + .spec.domain cannot exceed 253 characters" type IngressController struct { metav1.TypeMeta `json:",inline"` @@ -68,6 +69,22 @@ type IngressControllerSpec struct { // // If empty, defaults to ingress.config.openshift.io/cluster .spec.domain. // + // The domain value must be a valid DNS name. It must consist of lowercase + // alphanumeric characters, '-' or '.', and each label must start and end + // with an alphanumeric character and not exceed 63 characters. Maximum + // length of a valid DNS domain is 253 characters. + // + // The implementation may add a prefix such as "router-default." to the domain + // when constructing the router canonical hostname. To ensure the resulting + // hostname does not exceed the DNS maximum length of 253 characters, + // the domain length is additionally validated at the IngressController object + // level. For the maximum length of the domain value itself, the shortest + // possible variant of the prefix and the ingress controller name was considered + // for example "router-a." + // + // +kubebuilder:validation:MaxLength=244 + // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="domain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character" + // +kubebuilder:validation:XValidation:rule="self.split('.').all(label, size(label) <= 63)",message="each DNS label must not exceed 63 characters" // +optional Domain string `json:"domain,omitempty"` diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go index 483d9720da..d3475d9024 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go @@ -1063,7 +1063,7 @@ func (IngressControllerSetHTTPHeader) SwaggerDoc() map[string]string { var map_IngressControllerSpec = map[string]string{ "": "IngressControllerSpec is the specification of the desired behavior of the IngressController.", - "domain": "domain is a DNS name serviced by the ingress controller and is used to configure multiple features:\n\n* For the LoadBalancerService endpoint publishing strategy, domain is\n used to configure DNS records. See endpointPublishingStrategy.\n\n* When using a generated default certificate, the certificate will be valid\n for domain and its subdomains. See defaultCertificate.\n\n* The value is published to individual Route statuses so that end-users\n know where to target external DNS records.\n\ndomain must be unique among all IngressControllers, and cannot be updated.\n\nIf empty, defaults to ingress.config.openshift.io/cluster .spec.domain.", + "domain": "domain is a DNS name serviced by the ingress controller and is used to configure multiple features:\n\n* For the LoadBalancerService endpoint publishing strategy, domain is\n used to configure DNS records. See endpointPublishingStrategy.\n\n* When using a generated default certificate, the certificate will be valid\n for domain and its subdomains. See defaultCertificate.\n\n* The value is published to individual Route statuses so that end-users\n know where to target external DNS records.\n\ndomain must be unique among all IngressControllers, and cannot be updated.\n\nIf empty, defaults to ingress.config.openshift.io/cluster .spec.domain.\n\nThe domain value must be a valid DNS name. It must consist of lowercase alphanumeric characters, '-' or '.', and each label must start and end with an alphanumeric character and not exceed 63 characters. Maximum length of a valid DNS domain is 253 characters.\n\nThe implementation may add a prefix such as \"router-default.\" to the domain when constructing the router canonical hostname. To ensure the resulting hostname does not exceed the DNS maximum length of 253 characters, the domain length is additionally validated at the IngressController object level. For the maximum length of the domain value itself, the shortest possible variant of the prefix and the ingress controller name was considered for example \"router-a.\"", "httpErrorCodePages": "httpErrorCodePages specifies a configmap with custom error pages. The administrator must create this configmap in the openshift-config namespace. This configmap should have keys in the format \"error-page-.http\", where is an HTTP error code. For example, \"error-page-503.http\" defines an error page for HTTP 503 responses. Currently only error pages for 503 and 404 responses can be customized. Each value in the configmap should be the full response, including HTTP headers. Eg- https://raw.githubusercontent.com/openshift/router/fadab45747a9b30cc3f0a4b41ad2871f95827a93/images/router/haproxy/conf/error-page-503.http If this field is empty, the ingress controller uses the default error pages.", "replicas": "replicas is the desired number of ingress controller replicas. If unset, the default depends on the value of the defaultPlacement field in the cluster config.openshift.io/v1/ingresses status.\n\nThe value of replicas is set based on the value of a chosen field in the Infrastructure CR. If defaultPlacement is set to ControlPlane, the chosen field will be controlPlaneTopology. If it is set to Workers the chosen field will be infrastructureTopology. Replicas will then be set to 1 or 2 based whether the chosen field's value is SingleReplica or HighlyAvailable, respectively.\n\nThese defaults are subject to change.", "endpointPublishingStrategy": "endpointPublishingStrategy is used to publish the ingress controller endpoints to other networks, enable load balancer integrations, etc.\n\nIf unset, the default is based on infrastructure.config.openshift.io/cluster .status.platform:\n\n AWS: LoadBalancerService (with External scope)\n Azure: LoadBalancerService (with External scope)\n GCP: LoadBalancerService (with External scope)\n IBMCloud: LoadBalancerService (with External scope)\n AlibabaCloud: LoadBalancerService (with External scope)\n Libvirt: HostNetwork\n\nAny other platform types (including None) default to HostNetwork.\n\nendpointPublishingStrategy cannot be updated.", diff --git a/vendor/github.com/openshift/api/route/v1/generated.proto b/vendor/github.com/openshift/api/route/v1/generated.proto index e055eb0d26..85018b16b7 100644 --- a/vendor/github.com/openshift/api/route/v1/generated.proto +++ b/vendor/github.com/openshift/api/route/v1/generated.proto @@ -413,10 +413,12 @@ message RouterShard { // +kubebuilder:validation:XValidation:rule="has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination=='passthrough') && (self.insecureEdgeTerminationPolicy=='Allow')) : true", message="cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow" // +openshift:validation:FeatureGateAwareXValidation:featureGate=RouteExternalCertificate,rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate" message TLSConfig { - // termination indicates termination type. + // termination indicates the TLS termination type. // // * edge - TLS termination is done by the router and http is used to communicate with the backend (default) + // // * passthrough - Traffic is sent straight to the destination without the router providing TLS termination + // // * reencrypt - TLS termination is done by the router and https is used to communicate with the backend // // Note: passthrough termination is incompatible with httpHeader actions diff --git a/vendor/github.com/openshift/api/route/v1/types.go b/vendor/github.com/openshift/api/route/v1/types.go index 5a61f477e7..35c4064825 100644 --- a/vendor/github.com/openshift/api/route/v1/types.go +++ b/vendor/github.com/openshift/api/route/v1/types.go @@ -424,10 +424,12 @@ type RouterShard struct { // +kubebuilder:validation:XValidation:rule="has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination=='passthrough') && (self.insecureEdgeTerminationPolicy=='Allow')) : true", message="cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow" // +openshift:validation:FeatureGateAwareXValidation:featureGate=RouteExternalCertificate,rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate" type TLSConfig struct { - // termination indicates termination type. + // termination indicates the TLS termination type. // // * edge - TLS termination is done by the router and http is used to communicate with the backend (default) + // // * passthrough - Traffic is sent straight to the destination without the router providing TLS termination + // // * reencrypt - TLS termination is done by the router and https is used to communicate with the backend // // Note: passthrough termination is incompatible with httpHeader actions diff --git a/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go index e6c44a6b02..4c8f9eeddf 100644 --- a/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/route/v1/zz_generated.swagger_doc_generated.go @@ -173,7 +173,7 @@ func (RouterShard) SwaggerDoc() map[string]string { var map_TLSConfig = map[string]string{ "": "TLSConfig defines config used to secure a route and provide termination", - "termination": "termination indicates termination type.\n\n* edge - TLS termination is done by the router and http is used to communicate with the backend (default) * passthrough - Traffic is sent straight to the destination without the router providing TLS termination * reencrypt - TLS termination is done by the router and https is used to communicate with the backend\n\nNote: passthrough termination is incompatible with httpHeader actions", + "termination": "termination indicates the TLS termination type.\n\n* edge - TLS termination is done by the router and http is used to communicate with the backend (default)\n\n* passthrough - Traffic is sent straight to the destination without the router providing TLS termination\n\n* reencrypt - TLS termination is done by the router and https is used to communicate with the backend\n\nNote: passthrough termination is incompatible with httpHeader actions", "certificate": "certificate provides certificate contents. This should be a single serving certificate, not a certificate chain. Do not include a CA certificate.", "key": "key provides key file contents", "caCertificate": "caCertificate provides the cert authority certificate contents", diff --git a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/admissionregistration.go b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/admissionregistration.go index 88bd00b251..0b52c3a324 100644 --- a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/admissionregistration.go +++ b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/admissionregistration.go @@ -415,3 +415,51 @@ func ApplyValidatingAdmissionPolicyBindingV1(ctx context.Context, client admissi cache.UpdateCachedResourceMetadata(requiredOriginal, actual) return actual, true, nil } + +func DeleteValidatingAdmissionPolicyV1beta1(ctx context.Context, client admissionregistrationclientv1beta1.ValidatingAdmissionPoliciesGetter, recorder events.Recorder, required *admissionregistrationv1beta1.ValidatingAdmissionPolicy) (*admissionregistrationv1beta1.ValidatingAdmissionPolicy, bool, error) { + err := client.ValidatingAdmissionPolicies().Delete(ctx, required.Name, metav1.DeleteOptions{}) + if err != nil && apierrors.IsNotFound(err) { + return nil, false, nil + } + if err != nil { + return nil, false, err + } + resourcehelper.ReportDeleteEvent(recorder, required, err) + return nil, true, nil +} + +func DeleteValidatingAdmissionPolicyBindingV1beta1(ctx context.Context, client admissionregistrationclientv1beta1.ValidatingAdmissionPolicyBindingsGetter, recorder events.Recorder, required *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, bool, error) { + err := client.ValidatingAdmissionPolicyBindings().Delete(ctx, required.Name, metav1.DeleteOptions{}) + if err != nil && apierrors.IsNotFound(err) { + return nil, false, nil + } + if err != nil { + return nil, false, err + } + resourcehelper.ReportDeleteEvent(recorder, required, err) + return nil, true, nil +} + +func DeleteValidatingAdmissionPolicyV1(ctx context.Context, client admissionregistrationclientv1.ValidatingAdmissionPoliciesGetter, recorder events.Recorder, required *admissionregistrationv1.ValidatingAdmissionPolicy) (*admissionregistrationv1.ValidatingAdmissionPolicy, bool, error) { + err := client.ValidatingAdmissionPolicies().Delete(ctx, required.Name, metav1.DeleteOptions{}) + if err != nil && apierrors.IsNotFound(err) { + return nil, false, nil + } + if err != nil { + return nil, false, err + } + resourcehelper.ReportDeleteEvent(recorder, required, err) + return nil, true, nil +} + +func DeleteValidatingAdmissionPolicyBindingV1(ctx context.Context, client admissionregistrationclientv1.ValidatingAdmissionPolicyBindingsGetter, recorder events.Recorder, required *admissionregistrationv1.ValidatingAdmissionPolicyBinding) (*admissionregistrationv1.ValidatingAdmissionPolicyBinding, bool, error) { + err := client.ValidatingAdmissionPolicyBindings().Delete(ctx, required.Name, metav1.DeleteOptions{}) + if err != nil && apierrors.IsNotFound(err) { + return nil, false, nil + } + if err != nil { + return nil, false, err + } + resourcehelper.ReportDeleteEvent(recorder, required, err) + return nil, true, nil +} diff --git a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/generic.go b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/generic.go index 9105464bd0..58f49823f3 100644 --- a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/generic.go +++ b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/generic.go @@ -147,7 +147,7 @@ func ApplyDirectly(ctx context.Context, clients *ClientHolder, recorder events.R if clients.kubeClient == nil { result.Error = fmt.Errorf("missing kubeClient") } else { - result.Result, result.Changed, result.Error = ApplyNetworkPolicy(ctx, clients.kubeClient.NetworkingV1(), recorder, t) + result.Result, result.Changed, result.Error = ApplyNetworkPolicy(ctx, clients.kubeClient.NetworkingV1(), recorder, t, cache) } case *rbacv1.ClusterRole: if clients.kubeClient == nil { @@ -380,6 +380,30 @@ func DeleteAll(ctx context.Context, clients *ClientHolder, recorder events.Recor } else { _, result.Changed, result.Error = DeleteValidatingWebhookConfiguration(ctx, clients.kubeClient.AdmissionregistrationV1(), recorder, t) } + case *admissionregistrationv1beta1.ValidatingAdmissionPolicy: + if clients.kubeClient == nil { + result.Error = fmt.Errorf("missing kubeClient") + } else { + _, result.Changed, result.Error = DeleteValidatingAdmissionPolicyV1beta1(ctx, clients.kubeClient.AdmissionregistrationV1beta1(), recorder, t) + } + case *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding: + if clients.kubeClient == nil { + result.Error = fmt.Errorf("missing kubeClient") + } else { + _, result.Changed, result.Error = DeleteValidatingAdmissionPolicyBindingV1beta1(ctx, clients.kubeClient.AdmissionregistrationV1beta1(), recorder, t) + } + case *admissionregistrationv1.ValidatingAdmissionPolicy: + if clients.kubeClient == nil { + result.Error = fmt.Errorf("missing kubeClient") + } else { + _, result.Changed, result.Error = DeleteValidatingAdmissionPolicyV1(ctx, clients.kubeClient.AdmissionregistrationV1(), recorder, t) + } + case *admissionregistrationv1.ValidatingAdmissionPolicyBinding: + if clients.kubeClient == nil { + result.Error = fmt.Errorf("missing kubeClient") + } else { + _, result.Changed, result.Error = DeleteValidatingAdmissionPolicyBindingV1(ctx, clients.kubeClient.AdmissionregistrationV1(), recorder, t) + } case *storagev1.CSIDriver: if clients.kubeClient == nil { result.Error = fmt.Errorf("missing kubeClient") diff --git a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/networking.go b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/networking.go index 0a3df326e4..cc2de17ff3 100644 --- a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/networking.go +++ b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/networking.go @@ -15,34 +15,44 @@ import ( "github.com/openshift/library-go/pkg/operator/resource/resourcemerge" ) -// ApplyClusterRole merges objectmeta, does not worry about anything else -func ApplyNetworkPolicy(ctx context.Context, client networkingclientv1.NetworkPoliciesGetter, recorder events.Recorder, required *networkingv1.NetworkPolicy) (*networkingv1.NetworkPolicy, bool, error) { +// ApplyNetworkPolicy merges objectmeta and requires spec +func ApplyNetworkPolicy(ctx context.Context, client networkingclientv1.NetworkPoliciesGetter, recorder events.Recorder, required *networkingv1.NetworkPolicy, cache ResourceCache) (*networkingv1.NetworkPolicy, bool, error) { existing, err := client.NetworkPolicies(required.Namespace).Get(ctx, required.Name, metav1.GetOptions{}) if apierrors.IsNotFound(err) { requiredCopy := required.DeepCopy() actual, err := client.NetworkPolicies(required.Namespace).Create( ctx, resourcemerge.WithCleanLabelsAndAnnotations(requiredCopy).(*networkingv1.NetworkPolicy), metav1.CreateOptions{}) resourcehelper.ReportCreateEvent(recorder, required, err) + cache.UpdateCachedResourceMetadata(required, actual) return actual, true, err } if err != nil { return nil, false, err } + if cache.SafeToSkipApply(required, existing) { + return existing, false, nil + } + modified := false existingCopy := existing.DeepCopy() resourcemerge.EnsureObjectMeta(&modified, &existingCopy.ObjectMeta, required.ObjectMeta) - if equality.Semantic.DeepEqual(existingCopy.Spec, required.Spec) && !modified { + specContentSame := equality.Semantic.DeepEqual(existingCopy.Spec, required.Spec) + if specContentSame && !modified { + cache.UpdateCachedResourceMetadata(required, existingCopy) return existingCopy, false, nil } + existingCopy.Spec = required.Spec + if klog.V(2).Enabled() { klog.Infof("NetworkPolicy %q changes: %v", required.Name, JSONPatchNoError(existing, existingCopy)) } actual, err := client.NetworkPolicies(existingCopy.Namespace).Update(ctx, existingCopy, metav1.UpdateOptions{}) resourcehelper.ReportUpdateEvent(recorder, required, err) + cache.UpdateCachedResourceMetadata(required, actual) return actual, true, err } diff --git a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/storage.go b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/storage.go index d44a5d571a..afbdc53ee9 100644 --- a/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/storage.go +++ b/vendor/github.com/openshift/library-go/pkg/operator/resource/resourceapply/storage.go @@ -135,9 +135,10 @@ func storageClassNeedsRecreate(oldSC, newSC *storagev1.StorageClass) bool { return false } -// ApplyCSIDriver merges objectmeta, does not worry about anything else +// ApplyCSIDriver merges objectmeta and tries to update spec if any of the required fields were cleared by the API server. +// It assumes they were cleared due to a feature gate not enabled in the API server and it will be enabled soon. +// When used by StaticResourceController, it will retry periodically and eventually save the spec with the field. func ApplyCSIDriver(ctx context.Context, client storageclientv1.CSIDriversGetter, recorder events.Recorder, requiredOriginal *storagev1.CSIDriver) (*storagev1.CSIDriver, bool, error) { - required := requiredOriginal.DeepCopy() if required.Annotations == nil { required.Annotations = map[string]string{} @@ -173,14 +174,40 @@ func ApplyCSIDriver(ctx context.Context, client storageclientv1.CSIDriversGetter } } - metadataModified := false + needsUpdate := false + // Most CSIDriver fields are immutable. Any change to them should trigger Delete() + Create() calls. + needsRecreate := false + existingCopy := existing.DeepCopy() - resourcemerge.EnsureObjectMeta(&metadataModified, &existingCopy.ObjectMeta, required.ObjectMeta) + // Metadata change should need just Update() call. + resourcemerge.EnsureObjectMeta(&needsUpdate, &existingCopy.ObjectMeta, required.ObjectMeta) requiredSpecHash := required.Annotations[specHashAnnotation] existingSpecHash := existing.Annotations[specHashAnnotation] - sameSpec := requiredSpecHash == existingSpecHash - if sameSpec && !metadataModified { + // Assume whole re-create is needed on any spec change. + // We don't keep a track of which field is mutable. + needsRecreate = requiredSpecHash != existingSpecHash + + // TODO: remove when CSIDriver spec.nodeAllocatableUpdatePeriodSeconds is enabled by default + // (https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/4876-mutable-csinode-allocatable) + if !needsRecreate && !alphaFieldsSaved(existingCopy, required) { + // The required spec is the same as in previous succesful call, however, + // the API server must have cleared some alpha/beta fields in it. + // Try to save the object again. In case the fields are cleared again, + // the caller (typically StaticResourceController) must retry periodically. + klog.V(4).Infof("Detected CSIDriver %q field cleared by the API server, updating", required.Name) + + // Assumption: the alpha fields are **mutable**, so only Update() is needed. + // Update() with the same spec as before + the field cleared by the API server + // won't generate any informer events. StaticResourceController will retry with + // periodic retry (1 minute.) + // We cannot use needsRecreate=true, as it will generate informer events and + // StaticResourceController will retry immediately, leading to a busy loop. + needsUpdate = true + existingCopy.Spec = required.Spec + } + + if !needsUpdate && !needsRecreate { return existing, false, nil } @@ -188,16 +215,16 @@ func ApplyCSIDriver(ctx context.Context, client storageclientv1.CSIDriversGetter klog.Infof("CSIDriver %q changes: %v", required.Name, JSONPatchNoError(existing, existingCopy)) } - if sameSpec { - // Update metadata by a simple Update call + if !needsRecreate { + // only needsUpdate is true, update the object by a simple Update call actual, err := client.CSIDrivers().Update(ctx, existingCopy, metav1.UpdateOptions{}) resourcehelper.ReportUpdateEvent(recorder, required, err) return actual, true, err } + // needsRecreate is true, needsUpdate does not matter. Delete and re-create the object. existingCopy.Spec = required.Spec existingCopy.ObjectMeta.ResourceVersion = "" - // Spec is read-only after creation. Delete and re-create the object err = client.CSIDrivers().Delete(ctx, existingCopy.Name, metav1.DeleteOptions{}) resourcehelper.ReportDeleteEvent(recorder, existingCopy, err, "Deleting CSIDriver to re-create it with updated parameters") if err != nil && !apierrors.IsNotFound(err) { @@ -214,10 +241,17 @@ func ApplyCSIDriver(ctx context.Context, client storageclientv1.CSIDriversGetter } else if err != nil { err = fmt.Errorf("failed to re-create CSIDriver %s: %s", existingCopy.Name, err) } - resourcehelper.ReportCreateEvent(recorder, existingCopy, err) + resourcehelper.ReportCreateEvent(recorder, actual, err) return actual, true, err } +// alphaFieldsSaved checks that all required fields in the CSIDriver required spec are present and equal in the actual spec. +func alphaFieldsSaved(actual, required *storagev1.CSIDriver) bool { + // DeepDerivative checks that all fields in "required" are present and equal in "actual" + // Fields not present in "required" are ignored. + return equality.Semantic.DeepDerivative(required.Spec, actual.Spec) +} + func validateRequiredCSIDriverLabels(required *storagev1.CSIDriver) error { supportsEphemeralVolumes := false for _, mode := range required.Spec.VolumeLifecycleModes { diff --git a/vendor/k8s.io/utils/net/multi_listen.go b/vendor/k8s.io/utils/net/multi_listen.go index 7cb7795bec..e5d508055d 100644 --- a/vendor/k8s.io/utils/net/multi_listen.go +++ b/vendor/k8s.io/utils/net/multi_listen.go @@ -21,6 +21,7 @@ import ( "fmt" "net" "sync" + "sync/atomic" ) // connErrPair pairs conn and error which is returned by accept on sub-listeners. @@ -38,6 +39,7 @@ type multiListener struct { connCh chan connErrPair // stopCh communicates from parent to child listeners. stopCh chan struct{} + closed atomic.Bool } // compile time check to ensure *multiListener implements net.Listener @@ -150,10 +152,8 @@ func (ml *multiListener) Accept() (net.Conn, error) { // the go-routines to exit. func (ml *multiListener) Close() error { // Make sure this can be called repeatedly without explosions. - select { - case <-ml.stopCh: + if !ml.closed.CompareAndSwap(false, true) { return fmt.Errorf("use of closed network connection") - default: } // Tell all sub-listeners to stop. diff --git a/vendor/modules.txt b/vendor/modules.txt index d32cd1460b..dc1f1c49b3 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -413,7 +413,7 @@ github.com/opencontainers/runtime-spec/specs-go github.com/opencontainers/selinux/go-selinux github.com/opencontainers/selinux/go-selinux/label github.com/opencontainers/selinux/pkg/pwalkdir -# github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 +# github.com/openshift/api v0.0.0-20251117165054-348370f055bf ## explicit; go 1.24.0 github.com/openshift/api github.com/openshift/api/annotations @@ -508,7 +508,7 @@ github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/sysctl github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/user github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util github.com/openshift/apiserver-library-go/pkg/securitycontextconstraints/util/sort -# github.com/openshift/build-machinery-go v0.0.0-20250602125535-1b6d00b8c37c +# github.com/openshift/build-machinery-go v0.0.0-20251023084048-5d77c1a5e5af ## explicit; go 1.22.0 github.com/openshift/build-machinery-go github.com/openshift/build-machinery-go/make @@ -657,7 +657,7 @@ github.com/openshift/client-go/user/informers/externalversions/internalinterface github.com/openshift/client-go/user/informers/externalversions/user github.com/openshift/client-go/user/informers/externalversions/user/v1 github.com/openshift/client-go/user/listers/user/v1 -# github.com/openshift/cluster-policy-controller v0.0.0-20251007100337-ef703966fe6e +# github.com/openshift/cluster-policy-controller v0.0.0-20251120141414-8b775487512f ## explicit; go 1.24.0 github.com/openshift/cluster-policy-controller/pkg/client/genericinformers github.com/openshift/cluster-policy-controller/pkg/cmd/cluster-policy-controller @@ -670,7 +670,7 @@ github.com/openshift/cluster-policy-controller/pkg/security/controller github.com/openshift/cluster-policy-controller/pkg/security/mcs github.com/openshift/cluster-policy-controller/pkg/security/uidallocator github.com/openshift/cluster-policy-controller/pkg/version -# github.com/openshift/library-go v0.0.0-20251015151611-6fc7a74b67c5 +# github.com/openshift/library-go v0.0.0-20251112091634-ab97ebb73f0f ## explicit; go 1.24.0 github.com/openshift/library-go/pkg/apiserver/admission/admissionrestconfig github.com/openshift/library-go/pkg/apiserver/admission/admissiontimeout @@ -2225,7 +2225,7 @@ k8s.io/kubelet/pkg/cri/streaming k8s.io/kubelet/pkg/cri/streaming/portforward k8s.io/kubelet/pkg/cri/streaming/remotecommand k8s.io/kubelet/pkg/types -# k8s.io/kubernetes v1.34.1 => ./deps/github.com/openshift/kubernetes +# k8s.io/kubernetes v1.34.2 => ./deps/github.com/openshift/kubernetes ## explicit; go 1.24.0 k8s.io/kubernetes/cmd/kube-apiserver/app k8s.io/kubernetes/cmd/kube-apiserver/app/options @@ -3090,7 +3090,7 @@ k8s.io/pod-security-admission/admission/api/validation k8s.io/pod-security-admission/api k8s.io/pod-security-admission/metrics k8s.io/pod-security-admission/policy -# k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 +# k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 ## explicit; go 1.18 k8s.io/utils/buffer k8s.io/utils/clock From 6bc8113a0d717407559aff4b55b6f9e1cbe7ce52 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Tue, 2 Dec 2025 16:41:27 +0100 Subject: [PATCH 03/11] remove commit --- test/scenarios-bootc/releases/el96-lrel@low-latency.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/scenarios-bootc/releases/el96-lrel@low-latency.sh b/test/scenarios-bootc/releases/el96-lrel@low-latency.sh index ade84049a1..575e81e30b 100644 --- a/test/scenarios-bootc/releases/el96-lrel@low-latency.sh +++ b/test/scenarios-bootc/releases/el96-lrel@low-latency.sh @@ -44,8 +44,6 @@ scenario_run_tests() { run_tests host1 \ --exitonfailure \ - suites/tuned/profile.robot \ suites/tuned/microshift-tuned.robot \ - suites/tuned/workload-partitioning.robot \ - suites/tuned/uncore-cache.robot + suites/tuned/workload-partitioning.robot } From 11f6e8dbf6eff24be6b86e3d18878f00d4c3abfb Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Wed, 3 Dec 2025 12:57:53 +0100 Subject: [PATCH 04/11] fix --- test/assets/common_versions.sh.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index f7e49d223a..7122d677e6 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -87,7 +87,7 @@ get_redhat_bootc_image_url() {{ sha_id=$(skopeo inspect --raw "docker://${{registry}}/openshift4/microshift-bootc-rhel9:v${{release_version}}" | \ jq -r ".manifests[] | select(.platform.architecture==\"${{arch}}\") | .digest" 2>/dev/null) if [ "${{sha_id}}" ] && [[ "${{sha_id}}" != "" ]] && [[ "${{sha_id}}" =~ ^sha256:[0-9a-f]{{64}}$ ]]; then - image_url="${registry}/openshift4/microshift-bootc-rhel9@${sha_id}" + image_url="${{registry}}/openshift4/microshift-bootc-rhel9@${sha_id}" fi echo "${{image_url}}" }} From c2e04ca6fbc01c01c670e45c78b443dd797bdcb6 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Wed, 3 Dec 2025 15:22:33 +0100 Subject: [PATCH 05/11] fix template --- test/assets/common_versions.sh.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index 7122d677e6..a0b8738ca6 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -87,7 +87,7 @@ get_redhat_bootc_image_url() {{ sha_id=$(skopeo inspect --raw "docker://${{registry}}/openshift4/microshift-bootc-rhel9:v${{release_version}}" | \ jq -r ".manifests[] | select(.platform.architecture==\"${{arch}}\") | .digest" 2>/dev/null) if [ "${{sha_id}}" ] && [[ "${{sha_id}}" != "" ]] && [[ "${{sha_id}}" =~ ^sha256:[0-9a-f]{{64}}$ ]]; then - image_url="${{registry}}/openshift4/microshift-bootc-rhel9@${sha_id}" + image_url="${{registry}}/openshift4/microshift-bootc-rhel9@${{sha_id}}" fi echo "${{image_url}}" }} From 96b672753b115851b5b43f56446cb54759eb01b9 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Wed, 3 Dec 2025 15:46:52 +0100 Subject: [PATCH 06/11] fix template var --- test/bin/common_versions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 8e98d824ed..6f2b62b365 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -166,7 +166,7 @@ export RHOCP_MINOR_Y_BETA # The 'rhocp_minor_y' variable should be the previous minor version number, if # the previous release is available through the 'rhocp' stream, otherwise empty. -RHOCP_MINOR_Y1="20" +RHOCP_MINOR_Y1=20 # The beta repository, containing dependencies, should point to the # OpenShift mirror URL. The mirror for previous release should always # be available. From 0cb891679a530018000d5092e88170616a00e4bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gull=C3=B3n?= Date: Thu, 4 Dec 2025 11:19:50 +0100 Subject: [PATCH 07/11] Update test/assets/common_versions.sh.template Co-authored-by: Jon Cope --- test/assets/common_versions.sh.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index a0b8738ca6..4900b9650f 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -86,7 +86,7 @@ get_redhat_bootc_image_url() {{ sha_id=$(skopeo inspect --raw "docker://${{registry}}/openshift4/microshift-bootc-rhel9:v${{release_version}}" | \ jq -r ".manifests[] | select(.platform.architecture==\"${{arch}}\") | .digest" 2>/dev/null) - if [ "${{sha_id}}" ] && [[ "${{sha_id}}" != "" ]] && [[ "${{sha_id}}" =~ ^sha256:[0-9a-f]{{64}}$ ]]; then + if [[ "${{sha_id}}" =~ ^sha256:[0-9a-f]{{64}}$ ]]; then image_url="${{registry}}/openshift4/microshift-bootc-rhel9@${{sha_id}}" fi echo "${{image_url}}" From 0e24b93e7af8dfe159b18c97b34abe180df2611f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gull=C3=B3n?= Date: Thu, 4 Dec 2025 11:20:22 +0100 Subject: [PATCH 08/11] Update test/bin/common_versions.sh Co-authored-by: Jon Cope --- test/bin/common_versions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 6f2b62b365..221aee84f6 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -86,7 +86,7 @@ get_redhat_bootc_image_url() { sha_id=$(skopeo inspect --raw "docker://${registry}/openshift4/microshift-bootc-rhel9:v${release_version}" | \ jq -r ".manifests[] | select(.platform.architecture==\"${arch}\") | .digest" 2>/dev/null) - if [ "${sha_id}" ] && [[ "${sha_id}" != "" ]] && [[ "${sha_id}" =~ ^sha256:[0-9a-f]{64}$ ]]; then + if [[ "${sha_id}" =~ ^sha256:[0-9a-f]{64}$ ]]; then image_url="${registry}/openshift4/microshift-bootc-rhel9@${sha_id}" fi echo "${image_url}" From b214e51ab526ebb3ac2f3486590a2f9dbc96c621 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Thu, 4 Dec 2025 11:27:04 +0100 Subject: [PATCH 09/11] rename LREL vars to follow naming convention --- test/assets/common_versions.sh.template | 10 +++++----- test/bin/common_versions.sh | 10 +++++----- .../group1/rhel96-lrel-optionals-tuned.toml | 10 +++++----- .../releases/el96-lrel@konflux-images-standard1.sh | 6 +++--- .../releases/el96-lrel@konflux-images-standard2.sh | 6 +++--- test/scenarios/releases/el96@rpm-install-upgrade.sh | 2 +- test/scenarios/releases/el96@rpm-standard1.sh | 2 +- test/scenarios/releases/el96@rpm-standard2.sh | 2 +- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index 4900b9650f..fef685d8b0 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -201,14 +201,14 @@ export BREW_NIGHTLY_RELEASE_VERSION # Latest Release info LATEST_RELEASE_TYPE="ec" # ec, rc or zstream -BREW_LREL_RELEASE_VERSION="${{BREW_EC_RELEASE_VERSION}}" # BREW_EC_RELEASE_VERSION, BREW_RC_RELEASE_VERSION or BREW_Y0_RELEASE_VERSION -LATEST_RELEASE_VERSION="$(echo "${{BREW_LREL_RELEASE_VERSION}}" | sed -E 's/(.*)-.*/\1/' | sed -E 's/(.*)~(.*)/\1-\2/')" # example: 4.19.7 or 4.20.0-rc.3 -LREL_RELEASE_IMAGE_URL="$(get_lrel_release_image_url "${{LATEST_RELEASE_TYPE}}" "${{LATEST_RELEASE_VERSION}}")" +BREW_LATEST_RELEASE_VERSION="${{BREW_EC_RELEASE_VERSION}}" # BREW_EC_RELEASE_VERSION, BREW_RC_RELEASE_VERSION or BREW_Y0_RELEASE_VERSION +LATEST_RELEASE_VERSION="$(echo "${{BREW_LATEST_RELEASE_VERSION}}" | sed -E 's/(.*)-.*/\1/' | sed -E 's/(.*)~(.*)/\1-\2/')" # example: 4.19.7 or 4.20.0-rc.3 +LATEST_RELEASE_IMAGE_URL="$(get_lrel_release_image_url "${{LATEST_RELEASE_TYPE}}" "${{LATEST_RELEASE_VERSION}}")" export LATEST_RELEASE_TYPE -export BREW_LREL_RELEASE_VERSION +export BREW_LATEST_RELEASE_VERSION export LATEST_RELEASE_VERSION -export LREL_RELEASE_IMAGE_URL +export LATEST_RELEASE_IMAGE_URL # Branch and commit for the openshift-tests-private repository OPENSHIFT_TESTS_PRIVATE_REPO_BRANCH="release-4.${{MINOR_VERSION}}" diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 221aee84f6..7c18cc209c 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -201,14 +201,14 @@ export BREW_NIGHTLY_RELEASE_VERSION # Latest Release info LATEST_RELEASE_TYPE="ec" # ec, rc or zstream -BREW_LREL_RELEASE_VERSION="${BREW_EC_RELEASE_VERSION}" # BREW_EC_RELEASE_VERSION, BREW_RC_RELEASE_VERSION or BREW_Y0_RELEASE_VERSION -LATEST_RELEASE_VERSION="$(echo "${BREW_LREL_RELEASE_VERSION}" | sed -E 's/(.*)-.*/\1/' | sed -E 's/(.*)~(.*)/\1-\2/')" # example: 4.19.7 or 4.20.0-rc.3 -LREL_RELEASE_IMAGE_URL="$(get_lrel_release_image_url "${LATEST_RELEASE_TYPE}" "${LATEST_RELEASE_VERSION}")" +BREW_LATEST_RELEASE_VERSION="${BREW_EC_RELEASE_VERSION}" # BREW_EC_RELEASE_VERSION, BREW_RC_RELEASE_VERSION or BREW_Y0_RELEASE_VERSION +LATEST_RELEASE_VERSION="$(echo "${BREW_LATEST_RELEASE_VERSION}" | sed -E 's/(.*)-.*/\1/' | sed -E 's/(.*)~(.*)/\1-\2/')" # example: 4.19.7 or 4.20.0-rc.3 +LATEST_RELEASE_IMAGE_URL="$(get_lrel_release_image_url "${LATEST_RELEASE_TYPE}" "${LATEST_RELEASE_VERSION}")" export LATEST_RELEASE_TYPE -export BREW_LREL_RELEASE_VERSION +export BREW_LATEST_RELEASE_VERSION export LATEST_RELEASE_VERSION -export LREL_RELEASE_IMAGE_URL +export LATEST_RELEASE_IMAGE_URL # Branch and commit for the openshift-tests-private repository OPENSHIFT_TESTS_PRIVATE_REPO_BRANCH="release-4.${MINOR_VERSION}" diff --git a/test/image-blueprints/layer2-presubmit/group1/rhel96-lrel-optionals-tuned.toml b/test/image-blueprints/layer2-presubmit/group1/rhel96-lrel-optionals-tuned.toml index 1ed32e9db6..ff976082e7 100644 --- a/test/image-blueprints/layer2-presubmit/group1/rhel96-lrel-optionals-tuned.toml +++ b/test/image-blueprints/layer2-presubmit/group1/rhel96-lrel-optionals-tuned.toml @@ -1,4 +1,4 @@ -{{- if and (env.Getenv "BREW_LREL_RELEASE_VERSION" "") (env.Getenv "BREW_Y1_RELEASE_VERSION" "") -}} +{{- if and (env.Getenv "BREW_LATEST_RELEASE_VERSION" "") (env.Getenv "BREW_Y1_RELEASE_VERSION" "") -}} {{- /* We wrap this template in a test so that the body of the output is @@ -9,7 +9,7 @@ */ -}} name = "rhel-9.6-microshift-brew-tuned-4.{{ .Env.MINOR_VERSION}}-{{ .Env.LATEST_RELEASE_TYPE}}" -description = "A RHEL 9.6 image with already built and released RPMs like EC, RC, or Z-stream release: {{ .Env.BREW_LREL_RELEASE_VERSION }}" +description = "A RHEL 9.6 image with already built and released RPMs like EC, RC, or Z-stream release: {{ .Env.BREW_LATEST_RELEASE_VERSION }}" version = "0.0.1" modules = [] groups = [] @@ -22,20 +22,20 @@ distro = "rhel-96" {{ range (env.Getenv "MICROSHIFT_MANDATORY_RPMS" | strings.Split " ") }} [[packages]] name = "{{ . }}" -version = "{{ env.Getenv "BREW_LREL_RELEASE_VERSION" }}" +version = "{{ env.Getenv "BREW_LATEST_RELEASE_VERSION" }}" {{ end }} {{ range (env.Getenv "MICROSHIFT_OPTIONAL_RPMS" | strings.Split " ") }} [[packages]] name = "{{ . }}" -version = "{{ env.Getenv "BREW_LREL_RELEASE_VERSION" }}" +version = "{{ env.Getenv "BREW_LATEST_RELEASE_VERSION" }}" {{ end }} {{- if and (env.Getenv "UNAME_M" "") (eq "x86_64" .Env.UNAME_M) }} {{ range (env.Getenv "MICROSHIFT_X86_64_RPMS" | strings.Split " ") }} [[packages]] name = "{{ . }}" -version = "{{ env.Getenv "BREW_LREL_RELEASE_VERSION" }}" +version = "{{ env.Getenv "BREW_LATEST_RELEASE_VERSION" }}" {{ end }} {{- end }} diff --git a/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh index 254c03743a..0421892338 100644 --- a/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh +++ b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard1.sh @@ -8,11 +8,11 @@ IMAGE_SIGSTORE_ENABLED=true scenario_create_vms() { - if [ -z "${LREL_RELEASE_IMAGE_URL}" ] || [[ "${LREL_RELEASE_IMAGE_URL}" == "" ]] ; then - echo "ERROR: Scenario requires a valid LREL_RELEASE_IMAGE_URL, but got '${LREL_RELEASE_IMAGE_URL}'" + if [ -z "${LATEST_RELEASE_IMAGE_URL}" ] || [[ "${LATEST_RELEASE_IMAGE_URL}" == "" ]] ; then + echo "ERROR: Scenario requires a valid LATEST_RELEASE_IMAGE_URL, but got '${LATEST_RELEASE_IMAGE_URL}'" exit 1 fi - prepare_kickstart host1 kickstart-bootc.ks.template "${LREL_RELEASE_IMAGE_URL}" + prepare_kickstart host1 kickstart-bootc.ks.template "${LATEST_RELEASE_IMAGE_URL}" launch_vm --boot_blueprint rhel96-bootc # Open the firewall ports. Other scenarios get this behavior by embedding diff --git a/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh index f3ff813941..4b8f3fc341 100644 --- a/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh +++ b/test/scenarios-bootc/releases/el96-lrel@konflux-images-standard2.sh @@ -8,11 +8,11 @@ IMAGE_SIGSTORE_ENABLED=true scenario_create_vms() { - if [ -z "${LREL_RELEASE_IMAGE_URL}" ] || [[ "${LREL_RELEASE_IMAGE_URL}" == "" ]] ; then - echo "ERROR: Scenario requires a valid LREL_RELEASE_IMAGE_URL, but got '${LREL_RELEASE_IMAGE_URL}'" + if [ -z "${LATEST_RELEASE_IMAGE_URL}" ] || [[ "${LATEST_RELEASE_IMAGE_URL}" == "" ]] ; then + echo "ERROR: Scenario requires a valid LATEST_RELEASE_IMAGE_URL, but got '${LATEST_RELEASE_IMAGE_URL}'" exit 1 fi - prepare_kickstart host1 kickstart-bootc.ks.template "${LREL_RELEASE_IMAGE_URL}" + prepare_kickstart host1 kickstart-bootc.ks.template "${LATEST_RELEASE_IMAGE_URL}" launch_vm --boot_blueprint rhel96-bootc # Open the firewall ports. Other scenarios get this behavior by embedding diff --git a/test/scenarios/releases/el96@rpm-install-upgrade.sh b/test/scenarios/releases/el96@rpm-install-upgrade.sh index d9b8506c86..2e0cc928fb 100644 --- a/test/scenarios/releases/el96@rpm-install-upgrade.sh +++ b/test/scenarios/releases/el96@rpm-install-upgrade.sh @@ -109,7 +109,7 @@ scenario_run_tests() { run_tests host1 \ --exitonfailure \ --variable "SOURCE_REPO_URL:${repo_url}" \ - --variable "TARGET_VERSION:${BREW_LREL_RELEASE_VERSION}" \ + --variable "TARGET_VERSION:${BREW_LATEST_RELEASE_VERSION}" \ --variable "PREVIOUS_MINOR_VERSION:${PREVIOUS_MINOR_VERSION}" \ suites/rpm/install.robot \ suites/rpm/remove.robot \ diff --git a/test/scenarios/releases/el96@rpm-standard1.sh b/test/scenarios/releases/el96@rpm-standard1.sh index eb7e86fdee..d82d25efc9 100644 --- a/test/scenarios/releases/el96@rpm-standard1.sh +++ b/test/scenarios/releases/el96@rpm-standard1.sh @@ -77,7 +77,7 @@ scenario_run_tests() { run_tests host1 \ --exitonfailure \ --variable "SOURCE_REPO_URL:${repo_url}" \ - --variable "TARGET_VERSION:${BREW_LREL_RELEASE_VERSION}" \ + --variable "TARGET_VERSION:${BREW_LATEST_RELEASE_VERSION}" \ --variable "EXPECTED_OS_VERSION:9.6" \ suites/rpm/install.robot \ suites/standard1/ suites/selinux/validate-selinux-policy.robot diff --git a/test/scenarios/releases/el96@rpm-standard2.sh b/test/scenarios/releases/el96@rpm-standard2.sh index 7f4a3af16b..0aeaac0ad8 100644 --- a/test/scenarios/releases/el96@rpm-standard2.sh +++ b/test/scenarios/releases/el96@rpm-standard2.sh @@ -78,7 +78,7 @@ scenario_run_tests() { run_tests host1 \ --exitonfailure \ --variable "SOURCE_REPO_URL:${repo_url}" \ - --variable "TARGET_VERSION:${BREW_LREL_RELEASE_VERSION}" \ + --variable "TARGET_VERSION:${BREW_LATEST_RELEASE_VERSION}" \ --variable "EXPECTED_OS_VERSION:9.6" \ suites/rpm/install.robot \ suites/standard2/ From 475b468bd2157b2510aec1cd1405f9bdc629447d Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Thu, 4 Dec 2025 18:27:44 +0100 Subject: [PATCH 10/11] fix --- test/assets/common_versions.sh.template | 13 +++++-------- test/bin/common_versions.sh | 13 +++++-------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index fef685d8b0..251ccd26fd 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -75,14 +75,11 @@ get_redhat_bootc_image_url() {{ # get arch local arch="" - case ${{UNAME_M}} in - x86_64) - arch="amd64" - ;; - aarch64) - arch="arm64" - ;; - esac + if [ "${{UNAME_M}}" = "x86_64" ]; then + arch="amd64" + elif [ "${{UNAME_M}}" = "aarch64" ]; then + arch="arm64" + fi sha_id=$(skopeo inspect --raw "docker://${{registry}}/openshift4/microshift-bootc-rhel9:v${{release_version}}" | \ jq -r ".manifests[] | select(.platform.architecture==\"${{arch}}\") | .digest" 2>/dev/null) diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 7c18cc209c..3cd01f1c67 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -75,14 +75,11 @@ get_redhat_bootc_image_url() { # get arch local arch="" - case ${UNAME_M} in - x86_64) - arch="amd64" - ;; - aarch64) - arch="arm64" - ;; - esac + if [ "${UNAME_M}" = "x86_64" ]; then + arch="amd64" + elif [ "${UNAME_M}" = "aarch64" ]; then + arch="arm64" + fi sha_id=$(skopeo inspect --raw "docker://${registry}/openshift4/microshift-bootc-rhel9:v${release_version}" | \ jq -r ".manifests[] | select(.platform.architecture==\"${arch}\") | .digest" 2>/dev/null) From e8811605df5780f964ac0810059a9b782cd97752 Mon Sep 17 00:00:00 2001 From: Alejandro Gullon Date: Thu, 4 Dec 2025 19:38:03 +0100 Subject: [PATCH 11/11] fix arch vars --- test/assets/common_versions.sh.template | 12 ++++++------ test/bin/common_versions.sh | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/assets/common_versions.sh.template b/test/assets/common_versions.sh.template index 251ccd26fd..f978282955 100644 --- a/test/assets/common_versions.sh.template +++ b/test/assets/common_versions.sh.template @@ -74,15 +74,15 @@ get_redhat_bootc_image_url() {{ local image_url="" # get arch - local arch="" - if [ "${{UNAME_M}}" = "x86_64" ]; then - arch="amd64" - elif [ "${{UNAME_M}}" = "aarch64" ]; then - arch="arm64" + local arch_oci="" + if [[ "${{UNAME_M}}" =~ ^x86.*4$ ]]; then + arch_oci="amd64" + elif [[ "${{UNAME_M}}" =~ ^aarch.*4$ ]]; then + arch_oci="arm64" fi sha_id=$(skopeo inspect --raw "docker://${{registry}}/openshift4/microshift-bootc-rhel9:v${{release_version}}" | \ - jq -r ".manifests[] | select(.platform.architecture==\"${{arch}}\") | .digest" 2>/dev/null) + jq -r ".manifests[] | select(.platform.architecture==\"${{arch_oci}}\") | .digest" 2>/dev/null) if [[ "${{sha_id}}" =~ ^sha256:[0-9a-f]{{64}}$ ]]; then image_url="${{registry}}/openshift4/microshift-bootc-rhel9@${{sha_id}}" fi diff --git a/test/bin/common_versions.sh b/test/bin/common_versions.sh index 3cd01f1c67..2561b7d963 100644 --- a/test/bin/common_versions.sh +++ b/test/bin/common_versions.sh @@ -74,15 +74,15 @@ get_redhat_bootc_image_url() { local image_url="" # get arch - local arch="" - if [ "${UNAME_M}" = "x86_64" ]; then - arch="amd64" - elif [ "${UNAME_M}" = "aarch64" ]; then - arch="arm64" + local arch_oci="" + if [[ "${UNAME_M}" =~ ^x86.*4$ ]]; then + arch_oci="amd64" + elif [[ "${UNAME_M}" =~ ^aarch.*4$ ]]; then + arch_oci="arm64" fi sha_id=$(skopeo inspect --raw "docker://${registry}/openshift4/microshift-bootc-rhel9:v${release_version}" | \ - jq -r ".manifests[] | select(.platform.architecture==\"${arch}\") | .digest" 2>/dev/null) + jq -r ".manifests[] | select(.platform.architecture==\"${arch_oci}\") | .digest" 2>/dev/null) if [[ "${sha_id}" =~ ^sha256:[0-9a-f]{64}$ ]]; then image_url="${registry}/openshift4/microshift-bootc-rhel9@${sha_id}" fi