Skip to content

Commit 78178cc

Browse files
Merge pull request #14358 from ncdc/kube/45427-45897-gc-improvements
Kube GC improvements backports
2 parents 908f6a0 + 73f9c02 commit 78178cc

File tree

14 files changed

+288
-285
lines changed

14 files changed

+288
-285
lines changed

pkg/cmd/server/kubernetes/master/master_config_test.go

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package master
33
import (
44
"net"
55
"reflect"
6+
"sort"
67
"strings"
78
"testing"
89
"time"
@@ -147,8 +148,32 @@ func TestAPIServerDefaults(t *testing.T) {
147148
}
148149
}
149150

151+
// sortedGCIgnoredResources sorts by Group, then Resource.
152+
type sortedGCIgnoredResources []componentconfig.GroupResource
153+
154+
func (r sortedGCIgnoredResources) Len() int {
155+
return len(r)
156+
}
157+
158+
func (r sortedGCIgnoredResources) Less(i, j int) bool {
159+
if r[i].Group < r[j].Group {
160+
return true
161+
} else if r[i].Group > r[j].Group {
162+
return false
163+
}
164+
165+
return r[i].Resource < r[j].Resource
166+
}
167+
168+
func (r sortedGCIgnoredResources) Swap(i, j int) {
169+
r[i], r[j] = r[j], r[i]
170+
}
171+
150172
func TestCMServerDefaults(t *testing.T) {
151173
defaults := cmapp.NewCMServer()
174+
// We need to sort GCIgnoredResources because it's built from a map, which means the insertion
175+
// order is random.
176+
sort.Sort(sortedGCIgnoredResources(defaults.GCIgnoredResources))
152177

153178
// This is a snapshot of the default config
154179
// If the default changes (new fields are added, or default values change), we want to know
@@ -209,16 +234,30 @@ func TestCMServerDefaults(t *testing.T) {
209234
RenewDeadline: metav1.Duration{Duration: 10 * time.Second},
210235
RetryPeriod: metav1.Duration{Duration: 2 * time.Second},
211236
},
212-
ClusterSigningCertFile: "/etc/kubernetes/ca/ca.pem",
213-
ClusterSigningKeyFile: "/etc/kubernetes/ca/ca.key",
214-
EnableGarbageCollector: true,
237+
ClusterSigningCertFile: "/etc/kubernetes/ca/ca.pem",
238+
ClusterSigningKeyFile: "/etc/kubernetes/ca/ca.key",
239+
EnableGarbageCollector: true,
240+
GCIgnoredResources: []componentconfig.GroupResource{
241+
{Group: "extensions", Resource: "replicationcontrollers"},
242+
{Group: "", Resource: "bindings"},
243+
{Group: "", Resource: "componentstatuses"},
244+
{Group: "", Resource: "events"},
245+
{Group: "authentication.k8s.io", Resource: "tokenreviews"},
246+
{Group: "authorization.k8s.io", Resource: "subjectaccessreviews"},
247+
{Group: "authorization.k8s.io", Resource: "selfsubjectaccessreviews"},
248+
{Group: "authorization.k8s.io", Resource: "localsubjectaccessreviews"},
249+
{Group: "apiregistration.k8s.io", Resource: "apiservices"},
250+
},
215251
DisableAttachDetachReconcilerSync: false,
216252
ReconcilerSyncLoopPeriod: metav1.Duration{Duration: 60 * time.Second},
217253
Controllers: []string{"*"},
218254
EnableTaintManager: true,
219255
},
220256
}
221257

258+
// Because we sorted the defaults, we need to sort the expectedDefaults too.
259+
sort.Sort(sortedGCIgnoredResources(expectedDefaults.GCIgnoredResources))
260+
222261
if !reflect.DeepEqual(defaults, expectedDefaults) {
223262
t.Logf("expected defaults, actual defaults: \n%s", diff.ObjectReflectDiff(expectedDefaults, defaults))
224263
t.Errorf("Got different defaults than expected, adjust in BuildKubernetesMasterConfig and update expectedDefaults")

test/testdata/bootstrappolicy/bootstrap_cluster_roles.yaml

Lines changed: 2 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -5033,88 +5033,10 @@ items:
50335033
verbs:
50345034
- create
50355035
- apiGroups:
5036-
- ""
5037-
attributeRestrictions: null
5038-
resources:
5039-
- configmaps
5040-
- namespaces
5041-
- nodes
5042-
- persistentvolumeclaims
5043-
- persistentvolumes
5044-
- pods
5045-
- replicationcontrollers
5046-
- resourcequotas
5047-
- secrets
5048-
- serviceaccounts
5049-
- services
5050-
verbs:
5051-
- list
5052-
- watch
5053-
- apiGroups:
5054-
- extensions
5055-
attributeRestrictions: null
5056-
resources:
5057-
- daemonsets
5058-
- deployments
5059-
- podsecuritypolicies
5060-
- replicasets
5061-
verbs:
5062-
- list
5063-
- watch
5064-
- apiGroups:
5065-
- apps
5066-
attributeRestrictions: null
5067-
resources:
5068-
- deployments
5069-
verbs:
5070-
- list
5071-
- watch
5072-
- apiGroups:
5073-
- batch
5074-
attributeRestrictions: null
5075-
resources:
5076-
- cronjobs
5077-
- jobs
5078-
verbs:
5079-
- list
5080-
- watch
5081-
- apiGroups:
5082-
- apps
5083-
attributeRestrictions: null
5084-
resources:
5085-
- statefulsets
5086-
verbs:
5087-
- list
5088-
- watch
5089-
- apiGroups:
5090-
- policy
5091-
attributeRestrictions: null
5092-
resources:
5093-
- poddisruptionbudgets
5094-
verbs:
5095-
- list
5096-
- watch
5097-
- apiGroups:
5098-
- autoscaling
5099-
attributeRestrictions: null
5100-
resources:
5101-
- horizontalpodautoscalers
5102-
verbs:
5103-
- list
5104-
- watch
5105-
- apiGroups:
5106-
- certificates.k8s.io
5107-
attributeRestrictions: null
5108-
resources:
5109-
- certificatesigningrequests
5110-
verbs:
5111-
- list
5112-
- watch
5113-
- apiGroups:
5114-
- storage.k8s.io
5036+
- '*'
51155037
attributeRestrictions: null
51165038
resources:
5117-
- storageclasses
5039+
- '*'
51185040
verbs:
51195041
- list
51205042
- watch

vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/core.go

Lines changed: 15 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/BUILD

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/k8s.io/kubernetes/cmd/kube-controller-manager/app/options/options.go

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/k8s.io/kubernetes/pkg/apis/componentconfig/types.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/k8s.io/kubernetes/pkg/apis/componentconfig/zz_generated.deepcopy.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/BUILD

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/k8s.io/kubernetes/pkg/controller/garbagecollector/garbagecollector.go

Lines changed: 12 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)