Change:
https://k8s- sample failure: (also affecting other CI jobs) cc /sig gcp
/assign We're interested in disabling the job as blocking entirely. We're of the opinion this shouldn't have bee allowed to block the community in the first place. I swear there's a historical issue around tightening the regex somewhere.
... wrong button sorry about that
possibly caused by erroring on invalid values that were previously silently skipped opened to downgrade that error to a warning for a release
Well, I mentioned the idea of making the job optional in
PR out to drop the runifchanged regex from pull-kubernetes-e2e-gke
Confirmed turns the test green
Can call this closed when merges
/pony hooray
Couldn't find a pony matching that query. <detailsIn response to : /pony hooray Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details

Discussion:
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apiserver/pkg/server/storage:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/flag:go_default_library", <ins> "//vendor/k8s.io/klog:go_default_library", </ins> ], )

"k8s.io/apimachinery/pkg/runtime/schema" serverstore "k8s.io/apiserver/pkg/server/storage" utilflag "k8s.io/apiserver/pkg/util/flag" <ins> "k8s.io/klog" </ins> ) // GroupVersionRegistry provides access to registered group versions.

// individual resource enablement/disablement is only supported in the extensions/v1beta1 API group for legacy reasons. // all other API groups are expected to contain coherent sets of resources that are enabled/disabled together. if len(tokens) > 2 && (groupVersion != schema.GroupVersion{Group: "extensions", Version: "v1beta1"}) { <del> return nil, fmt.Errorf("invalid key %s, individual resource enablement/disablement is not supported in %s", key, groupVersion.String()) </del> <ins> klog.Warningf("ignoring invalid key %s, individual resource enablement/disablement is not supported in %s, and will prevent starting in future releases", key, groupVersion.String()) continue </ins> } // Exclude group not registered into the registry.

expectedAPIConfig: func() *serverstore.ResourceConfig { config := newFakeAPIResourceConfigSource() config.EnableVersions(scheme.PrioritizedVersionsAllGroups()...) <del> config.EnableResources( extensionsapiv1beta1.SchemeGroupVersion.WithResource("deployments"), extensionsapiv1beta1.SchemeGroupVersion.WithResource("replicasets"), extensionsapiv1beta1.SchemeGroupVersion.WithResource("daemonsets"), ) </del> return config }, err: false,

expectedAPIConfig: func() *serverstore.ResourceConfig { config := newFakeAPIResourceConfigSource() config.DisableVersions(extensionsapiv1beta1.SchemeGroupVersion) <del> config.DisableResources(extensionsapiv1beta1.SchemeGroupVersion.WithResource("ingresses")) </del> return config }, err: false,

return newFakeAPIResourceConfigSource() }, expectedAPIConfig: func() *serverstore.ResourceConfig { <del> config := newFakeAPIResourceConfigSource() config.DisableVersions(extensionsapiv1beta1.SchemeGroupVersion) return config </del> <ins> return newFakeAPIResourceConfigSource() </ins> }, <del> err: true, </del> <ins> err: false, // no error for backwards compatibility </ins> }, } for index, test := range testCases {

return &ResourceConfig{GroupVersionConfigs: map[schema.GroupVersion]bool{}, ResourceConfigs: map[schema.GroupVersionResource]bool{}} } <ins> // DisableAll disables all group/versions. It does not modify individual resource enablement/disablement. </ins> func (o *ResourceConfig) DisableAll() { for k := range o.GroupVersionConfigs { o.GroupVersionConfigs[k] = false } <del> for k := range o.ResourceConfigs { o.ResourceConfigs[k] = false } </del> } <ins> // EnableAll enables all group/versions. It does not modify individual resource enablement/disablement. </ins> func (o *ResourceConfig) EnableAll() { for k := range o.GroupVersionConfigs { o.GroupVersionConfigs[k] = true } <del> for k := range o.ResourceConfigs { o.ResourceConfigs[k] = true } </del> } // DisableVersions disables the versions entirely.

t.Errorf("expected enabled for %v, from %v", g2v1rEnabled, config) } <del> // Enable all enables specific resources </del> <ins> // DisableAll() only disables to the group/version level for compatibility // corresponds to --runtime-config=api/all=false config.DisableAll() if config.ResourceEnabled(g1v1rEnabled) { t.Errorf("expected disabled for %v, from %v", g1v1rEnabled, config) } if config.ResourceEnabled(g1v2rEnabled) { t.Errorf("expected disabled for %v, from %v", g1v2rEnabled, config) } if config.ResourceEnabled(g2v1rEnabled) { t.Errorf("expected disabled for %v, from %v", g2v1rEnabled, config) } // DisableAll() only disables to the group/version level for compatibility // corresponds to --runtime-config=api/all=false,g1/v1=true config.DisableAll() config.EnableVersions(g1v1) if !config.ResourceEnabled(g1v1rEnabled) { t.Errorf("expected enabled for %v, from %v", g1v1rEnabled, config) } // EnableAll() only enables to the group/version level for compatibility </ins> config.EnableAll() <del> // all resources under g1v1 are now enabled </del> <ins> // all unspecified or enabled resources under all groups now enabled </ins> if !config.ResourceEnabled(g1v1rUnspecified) { t.Errorf("expected enabled for %v, from %v", g1v1rUnspecified, config) } if !config.ResourceEnabled(g1v1rEnabled) { t.Errorf("expected enabled for %v, from %v", g1v1rEnabled, config) } <del> if !config.ResourceEnabled(g1v1rDisabled) { t.Errorf("expected enabled for %v, from %v", g1v1rDisabled, config) </del> <ins> if !config.ResourceEnabled(g1v2rUnspecified) { t.Errorf("expected enabled for %v, from %v", g1v2rUnspecified, config) } if !config.ResourceEnabled(g1v2rEnabled) { t.Errorf("expected enabled for %v, from %v", g1v2rEnabled, config) } if !config.ResourceEnabled(g2v1rUnspecified) { t.Errorf("expected enabled for %v, from %v", g2v1rUnspecified, config) } if !config.ResourceEnabled(g2v1rEnabled) { t.Errorf("expected enabled for %v, from %v", g2v1rEnabled, config) </ins> } <del> // previously disabled resources are now enabled if !config.ResourceEnabled(g1v2rDisabled) { t.Errorf("expected enabled for %v, from %v", g1v2rDisabled, config) </del> <ins> // previously disabled resources are still disabled if config.ResourceEnabled(g1v1rDisabled) { t.Errorf("expected disabled for %v, from %v", g1v1rDisabled, config) </ins> } <del> if !config.ResourceEnabled(g2v1rDisabled) { t.Errorf("expected enabled for %v, from %v", g2v1rDisabled, config) </del> <ins> if config.ResourceEnabled(g1v2rDisabled) { t.Errorf("expected disabled for %v, from %v", g1v2rDisabled, config) } if config.ResourceEnabled(g2v1rDisabled) { t.Errorf("expected disabled for %v, from %v", g2v1rDisabled, config) </ins> } }