Skip to content

Commit b2f2e3a

Browse files
authored
Merge pull request gardener#2970 from vpnachev/seed-taints/allow-again-some-taints
Allow again some seed taints to be used
2 parents 03a6f95 + 8c59631 commit b2f2e3a

File tree

6 files changed

+12
-72
lines changed

6 files changed

+12
-72
lines changed

docs/concepts/scheduler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Once this list has been computed the scheduler tries to find the best one out of
7171
It filters out `Seed`s
7272

7373
* whose networks have intersections with the `Shoot`'s networks (due to the VPN connectivity between seeds and shoots their networks must be disjoint)
74-
* that are tainted with the `seed.gardener.cloud/disable-dns` taint (only if the shoot specifies a DNS domain or does not use the `unmanaged` DNS provider)
74+
* that have `.spec.settings.shootDNS.enabled=false` (only if the shoot specifies a DNS domain or does not use the `unmanaged` DNS provider)
7575
* whose labels don't match the `.spec.seedSelector` field of the `CloudProfile` that is used in the `Shoot` (there might be multiple environments for the same provider type, e.g., you might have multiple OpenStack systems connected to Gardener)
7676

7777
After this filtering process the least utilized seed, i.e., the one with the least number of shoot control planes, will be the winner and written to the `.spec.seedName` field of the `Shoot`.

docs/usage/configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ When the `gardenlet` starts it scans the `garden` namespace of the garden cluste
5555
* Not every end-user/stakeholder/customer has its own domain, however, Gardener needs to create a DNS record for every shoot cluster.
5656
* As landscape operator you might want to define a default domain owned and controlled by you that is used for all shoot clusters that don't specify their own domain.
5757

58-
:warning: Please note that the mentioned domain secrets are only needed if you have at least one seed cluster that is not tainted with `seed.gardener.cloud/disable-dns`.
58+
:warning: Please note that the mentioned domain secrets are only needed if you have at least one seed cluster that is not specifing `.spec.settings.shootDNS.enabled=false`.
5959
Seeds with this taint don't create any DNS records for shoots scheduled on it, hence, if you only have such seeds, you don't need to create the domain secrets.
6060

6161
* **Alerting secrets** (optional), contain the alerting configuration and credentials for the [AlertManager](https://prometheus.io/docs/alerting/alertmanager/) to send email alerts. It is also possible to configure the monitoring stack to send alerts to an AlertManager not deployed by Gardener to handle alerting. Please see [this](../../example/10-secret-alerting.yaml) for an example.

pkg/apis/core/v1alpha1/defaults.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -117,20 +117,6 @@ func SetDefaults_Seed(obj *Seed) {
117117
if obj.Spec.Settings.VerticalPodAutoscaler == nil {
118118
obj.Spec.Settings.VerticalPodAutoscaler = &SeedSettingVerticalPodAutoscaler{Enabled: true}
119119
}
120-
121-
// TODO: remove taints removal in version >=1.13
122-
taintsToRemove := []string{
123-
"seed.gardener.cloud/disable-capacity-reservation",
124-
"seed.gardener.cloud/disable-dns",
125-
"seed.gardener.cloud/invisible",
126-
}
127-
for _, taint := range taintsToRemove {
128-
for i := len(obj.Spec.Taints) - 1; i >= 0; i-- {
129-
if obj.Spec.Taints[i].Key == taint {
130-
obj.Spec.Taints = append(obj.Spec.Taints[:i], obj.Spec.Taints[i+1:]...)
131-
}
132-
}
133-
}
134120
}
135121

136122
// SetDefaults_Shoot sets default values for Shoot objects.

pkg/apis/core/v1alpha1/defaults_test.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -233,38 +233,22 @@ var _ = Describe("Defaults", func() {
233233
Expect(obj.Spec.Settings.VerticalPodAutoscaler.Enabled).To(BeTrue())
234234
})
235235

236-
It("should remove deprecated taints from the seed settings (w/ taints)", func() {
237-
obj.Spec.Taints = []SeedTaint{
236+
It("should allow taints that were not allowed in version v1.12", func() {
237+
taints := []SeedTaint{
238238
{Key: "seed.gardener.cloud/disable-capacity-reservation"},
239239
{Key: "seed.gardener.cloud/disable-dns"},
240240
{Key: "seed.gardener.cloud/invisible"},
241241
}
242+
obj.Spec.Taints = taints
242243

243244
SetDefaults_Seed(obj)
244245

245246
Expect(obj.Spec.Settings.ExcessCapacityReservation.Enabled).To(BeTrue())
246247
Expect(obj.Spec.Settings.Scheduling.Visible).To(BeTrue())
247248
Expect(obj.Spec.Settings.ShootDNS.Enabled).To(BeTrue())
248249
Expect(obj.Spec.Settings.VerticalPodAutoscaler.Enabled).To(BeTrue())
249-
Expect(obj.Spec.Taints).To(BeEmpty())
250-
})
251-
252-
It("should keep non-deprecated taints from the seed settings (w/ taints)", func() {
253-
obj.Spec.Taints = []SeedTaint{
254-
{Key: "seed.gardener.cloud/disable-capacity-reservation"},
255-
{Key: "seed.gardener.cloud/disable-dns"},
256-
{Key: "seed.gardener.cloud/invisible"},
257-
{Key: SeedTaintProtected},
258-
}
259-
260-
SetDefaults_Seed(obj)
261-
262-
Expect(obj.Spec.Settings.ExcessCapacityReservation.Enabled).To(BeTrue())
263-
Expect(obj.Spec.Settings.Scheduling.Visible).To(BeTrue())
264-
Expect(obj.Spec.Settings.ShootDNS.Enabled).To(BeTrue())
265-
Expect(obj.Spec.Settings.VerticalPodAutoscaler.Enabled).To(BeTrue())
266-
Expect(obj.Spec.Taints).To(HaveLen(1))
267-
Expect(obj.Spec.Taints[0].Key).To(Equal(SeedTaintProtected))
250+
Expect(obj.Spec.Taints).To(HaveLen(3))
251+
Expect(obj.Spec.Taints).To(Equal(taints))
268252
})
269253

270254
It("should not default the seed settings because they were provided", func() {

pkg/apis/core/v1beta1/defaults.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -117,20 +117,6 @@ func SetDefaults_Seed(obj *Seed) {
117117
if obj.Spec.Settings.VerticalPodAutoscaler == nil {
118118
obj.Spec.Settings.VerticalPodAutoscaler = &SeedSettingVerticalPodAutoscaler{Enabled: true}
119119
}
120-
121-
// TODO: remove taints removal in version >=1.13
122-
taintsToRemove := []string{
123-
"seed.gardener.cloud/disable-capacity-reservation",
124-
"seed.gardener.cloud/disable-dns",
125-
"seed.gardener.cloud/invisible",
126-
}
127-
for _, taint := range taintsToRemove {
128-
for i := len(obj.Spec.Taints) - 1; i >= 0; i-- {
129-
if obj.Spec.Taints[i].Key == taint {
130-
obj.Spec.Taints = append(obj.Spec.Taints[:i], obj.Spec.Taints[i+1:]...)
131-
}
132-
}
133-
}
134120
}
135121

136122
// SetDefaults_Shoot sets default values for Shoot objects.

pkg/apis/core/v1beta1/defaults_test.go

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -234,38 +234,22 @@ var _ = Describe("Defaults", func() {
234234
Expect(obj.Spec.Settings.VerticalPodAutoscaler.Enabled).To(BeTrue())
235235
})
236236

237-
It("should remove deprecated taints from the seed settings (w/ taints)", func() {
238-
obj.Spec.Taints = []SeedTaint{
237+
It("should allow taints that were not allowed in version v1.12", func() {
238+
taints := []SeedTaint{
239239
{Key: "seed.gardener.cloud/disable-capacity-reservation"},
240240
{Key: "seed.gardener.cloud/disable-dns"},
241241
{Key: "seed.gardener.cloud/invisible"},
242242
}
243+
obj.Spec.Taints = taints
243244

244245
SetDefaults_Seed(obj)
245246

246247
Expect(obj.Spec.Settings.ExcessCapacityReservation.Enabled).To(BeTrue())
247248
Expect(obj.Spec.Settings.Scheduling.Visible).To(BeTrue())
248249
Expect(obj.Spec.Settings.ShootDNS.Enabled).To(BeTrue())
249250
Expect(obj.Spec.Settings.VerticalPodAutoscaler.Enabled).To(BeTrue())
250-
Expect(obj.Spec.Taints).To(BeEmpty())
251-
})
252-
253-
It("should keep non-deprecated taints from the seed settings (w/ taints)", func() {
254-
obj.Spec.Taints = []SeedTaint{
255-
{Key: "seed.gardener.cloud/disable-capacity-reservation"},
256-
{Key: "seed.gardener.cloud/disable-dns"},
257-
{Key: "seed.gardener.cloud/invisible"},
258-
{Key: SeedTaintProtected},
259-
}
260-
261-
SetDefaults_Seed(obj)
262-
263-
Expect(obj.Spec.Settings.ExcessCapacityReservation.Enabled).To(BeTrue())
264-
Expect(obj.Spec.Settings.Scheduling.Visible).To(BeTrue())
265-
Expect(obj.Spec.Settings.ShootDNS.Enabled).To(BeTrue())
266-
Expect(obj.Spec.Settings.VerticalPodAutoscaler.Enabled).To(BeTrue())
267-
Expect(obj.Spec.Taints).To(HaveLen(1))
268-
Expect(obj.Spec.Taints[0].Key).To(Equal(SeedTaintProtected))
251+
Expect(obj.Spec.Taints).To(HaveLen(3))
252+
Expect(obj.Spec.Taints).To(Equal(taints))
269253
})
270254

271255
It("should not default the seed settings because they were provided", func() {

0 commit comments

Comments
 (0)