From 97d6a286e1bab3c60fd1ea8590b137e0c3225b0a Mon Sep 17 00:00:00 2001 From: Antonio Ojea Date: Tue, 21 Jun 2022 19:40:46 +0200 Subject: [PATCH] update bootstrap process --- .../1880-multiple-service-cidrs/README.md | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/keps/sig-network/1880-multiple-service-cidrs/README.md b/keps/sig-network/1880-multiple-service-cidrs/README.md index 5a78abcd3304..45383641bdba 100644 --- a/keps/sig-network/1880-multiple-service-cidrs/README.md +++ b/keps/sig-network/1880-multiple-service-cidrs/README.md @@ -26,10 +26,10 @@ - [API](#api) - [Allocator](#allocator) - [Test Plan](#test-plan) - - [Prerequisite testing updates](#prerequisite-testing-updates) - - [Unit tests](#unit-tests) - - [Integration tests](#integration-tests) - - [e2e tests](#e2e-tests) + - [Prerequisite testing updates](#prerequisite-testing-updates) + - [Unit tests](#unit-tests) + - [Integration tests](#integration-tests) + - [e2e tests](#e2e-tests) - [Graduation Criteria](#graduation-criteria) - [Alpha](#alpha) - [Beta](#beta) @@ -46,10 +46,10 @@ - [Implementation History](#implementation-history) - [Drawbacks](#drawbacks) - [Alternatives](#alternatives) - - [Alternative 1](#alternative-1) - - [Alternative 2](#alternative-2) - - [Alternative 3](#alternative-3) - - [Alternative 4](#alternative-4) + - [Alternative 1](#alternative-1) + - [Alternative 2](#alternative-2) + - [Alternative 3](#alternative-3) + - [Alternative 4](#alternative-4) - [Infrastructure Needed (Optional)](#infrastructure-needed-optional) @@ -276,6 +276,9 @@ difference is that instead of creating a bitmap based on the flags, it will crea ServiceCIDRConfig object from the flags (flags configuration removal is out of scope of this KEP) with a special label `networking.kubernetes.io/service-cidr-from-flags` set to `"true"`. +It now has to handle the possibility of multiple ServiceCIDRConfig with the special label, and +also updating the configuration, per example, from single-stack to dual-stack. + The new bootstrap process will be: ``` @@ -295,14 +298,13 @@ controller on_event: if no default range matching exactly my flags log create a ServiceCIDR from my flags - generateName: "default-" or "from-flags-" + generateName: "from-flags-" from-flags label: "true" else if multiple log - if multiple ranges match exactly my flags - sort them by creation time - log - delete all but one + if multiple ranges match exactly my flags (or a single-family subset of) + log + delete all subsets, leaving the largest set that exactly matches on at least on family endif endif if kubernetes.default does not exist