Merge pull request #98576 from kevindelgado/ssa

Fix SSA for APIService
This commit is contained in:
Kubernetes Prow Robot 2021-01-29 17:21:58 -08:00 committed by GitHub
commit 0a0490e34f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 19 deletions

View File

@ -913,6 +913,12 @@ func SetObjectDefaults_SecretList(in *v1.SecretList) {
func SetObjectDefaults_Service(in *v1.Service) {
SetDefaults_Service(in)
for i := range in.Spec.Ports {
a := &in.Spec.Ports[i]
if a.Protocol == "" {
a.Protocol = "TCP"
}
}
}
func SetObjectDefaults_ServiceList(in *v1.ServiceList) {

View File

@ -4751,6 +4751,7 @@ message ServicePort {
// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
// Default is TCP.
// +default="TCP"
// +optional
optional string protocol = 2;

View File

@ -4265,6 +4265,7 @@ type ServicePort struct {
// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
// Default is TCP.
// +default="TCP"
// +optional
Protocol Protocol `json:"protocol,omitempty" protobuf:"bytes,2,opt,name=protocol,casttype=Protocol"`

View File

@ -163,11 +163,6 @@ func (cfg *Config) Complete() CompletedConfig {
// NewWithDelegate returns a new instance of APIAggregator from the given config.
func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.DelegationTarget) (*APIAggregator, error) {
// Prevent generic API server to install OpenAPI handler. Aggregator server
// has its own customized OpenAPI handler.
openAPIConfig := c.GenericConfig.OpenAPIConfig
c.GenericConfig.OpenAPIConfig = nil
genericServer, err := c.GenericConfig.New("kube-aggregator", delegationTarget)
if err != nil {
return nil, err
@ -191,7 +186,7 @@ func (c completedConfig) NewWithDelegate(delegationTarget genericapiserver.Deleg
lister: informerFactory.Apiregistration().V1().APIServices().Lister(),
APIRegistrationInformers: informerFactory,
serviceResolver: c.ExtraConfig.ServiceResolver,
openAPIConfig: openAPIConfig,
openAPIConfig: c.GenericConfig.OpenAPIConfig,
egressSelector: c.GenericConfig.EgressSelector,
proxyCurrentCertKeyContent: func() (bytes []byte, bytes2 []byte) { return nil, nil },
}

View File

@ -60,15 +60,7 @@ var statusData = map[schema.GroupVersionResource]string{
gvr("internal.apiserver.k8s.io", "v1alpha1", "storageversions"): `{"status": {"commonEncodingVersion":"v1","storageVersions":[{"apiServerID":"1","decodableVersions":["v1","v2"],"encodingVersion":"v1"}],"conditions":[{"type":"AllEncodingVersionsEqual","status":"True","lastTransitionTime":"2020-01-01T00:00:00Z","reason":"allEncodingVersionsEqual","message":"all encoding versions are set to v1"}]}}`,
}
const statusDefault = `{"status": {"conditions": [{"type": "MyStatus", "status":"true"}]}}`
// DO NOT ADD TO THIS LIST.
// This list is used to ignore known bugs. We shouldn't introduce new bugs.
var ignoreList = map[schema.GroupVersionResource]struct{}{
// TODO(#89264): apiservices doesn't work because the openapi is not routed properly.
gvr("apiregistration.k8s.io", "v1beta1", "apiservices"): {},
gvr("apiregistration.k8s.io", "v1", "apiservices"): {},
}
const statusDefault = `{"status": {"conditions": [{"type": "MyStatus", "status":"True"}]}}`
// Some status-only APIs have empty object on creation. Therefore we don't expect create_test
// managedFields for these APIs
@ -146,9 +138,6 @@ func TestApplyStatus(t *testing.T) {
t.Fatal(err)
}
t.Run(mapping.Resource.String(), func(t *testing.T) {
if _, ok := ignoreList[mapping.Resource]; ok {
t.Skip()
}
status, ok := statusData[mapping.Resource]
if !ok {
status = statusDefault
@ -167,8 +156,17 @@ func TestApplyStatus(t *testing.T) {
namespace = ""
}
name := newObj.GetName()
// etcd test stub data doesn't contain apiVersion/kind (!), but apply requires it
newObj.SetGroupVersionKind(mapping.GroupVersionKind)
createData, err := json.Marshal(newObj.Object)
if err != nil {
t.Fatal(err)
}
rsc := dynamicClient.Resource(mapping.Resource).Namespace(namespace)
_, err := rsc.Create(context.TODO(), &newObj, metav1.CreateOptions{FieldManager: "create_test"})
// apply to create
_, err = rsc.Patch(context.TODO(), name, types.ApplyPatchType, []byte(createData), metav1.PatchOptions{FieldManager: "create_test"})
if err != nil {
t.Fatal(err)
}