Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error while trying to enable new types #47

Closed
mvazquezc opened this issue Mar 6, 2019 · 11 comments
Closed

Error while trying to enable new types #47

mvazquezc opened this issue Mar 6, 2019 · 11 comments
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@mvazquezc
Copy link
Member

I've deployed the operator v2 following the readme. The subscription was created and I can see the following status:

STATUS
Succeeded
STATUS REASON
install strategy completed with no errors 

Some info about the cluster:

oc get clusterversion
NAME      VERSION     AVAILABLE   PROGRESSING   SINCE     STATUS
version   4.0.0-0.5   True        False         22m       Cluster version is 4.0.0-0.5

The list of CRDs created by the operator:

oc get crd | grep fed
clusterpropagatedversions.core.federation.k8s.io                         2019-03-06T16:39:08Z
dnsendpoints.multiclusterdns.federation.k8s.io                           2019-03-06T16:39:08Z
domains.multiclusterdns.federation.k8s.io                                2019-03-06T16:39:08Z
federatedclusters.core.federation.k8s.io                                 2019-03-06T16:39:08Z
federatedservicestatuses.core.federation.k8s.io                          2019-03-06T16:39:08Z
federatedtypeconfigs.core.federation.k8s.io                              2019-03-06T16:39:08Z
ingressdnsrecords.multiclusterdns.federation.k8s.io                      2019-03-06T16:39:09Z
propagatedversions.core.federation.k8s.io                                2019-03-06T16:39:09Z
replicaschedulingpreferences.scheduling.federation.k8s.io                2019-03-06T16:39:09Z
servicednsrecords.multiclusterdns.federation.k8s.io                      2019-03-06T16:39:09Z

Now when I try to enable namespace (or any other type) federation I get the following error:

kubefed2 enable namespaces --federation-namespace federation-test --registry-namespace federation-test
F0306 17:56:45.126896   17083 enable.go:117] error: Error initializing validation schema accessor: Error loading openapi schema: SchemaError(com.github.openshift.api.image.v1.ImageBlobReferences): invalid object doesn't have additional properties

Any ideas?

Thanks in advance,

Now more verbose:

I0306 17:59:12.373104   18384 loader.go:359] Config loaded from file /some/path/kubeconfig
I0306 17:59:12.374566   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/api?timeout=32s
I0306 17:59:12.374578   18384 round_trippers.go:390] Request Headers:
I0306 17:59:12.374582   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:12.374586   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:12.966856   18384 round_trippers.go:408] Response Status: 200 OK in 592 milliseconds
I0306 17:59:12.967844   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis?timeout=32s
I0306 17:59:12.967881   18384 round_trippers.go:390] Request Headers:
I0306 17:59:12.967903   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:12.967930   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.077867   18384 round_trippers.go:408] Response Status: 200 OK in 109 milliseconds
I0306 17:59:13.083468   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/api/v1?timeout=32s
I0306 17:59:13.083535   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.083573   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.083608   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.083649   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/metrics.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.083649   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/events.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.083749   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.083784   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.083818   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.083937   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/authentication.k8s.io/v1?timeout=32s
I0306 17:59:13.083973   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084006   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084037   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.083715   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084107   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.084164   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084227   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/template.openshift.io/v1?timeout=32s
I0306 17:59:13.084248   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/extensions/v1beta1?timeout=32s
I0306 17:59:13.084319   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084353   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.084385   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084462   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apps/v1?timeout=32s
I0306 17:59:13.084533   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084278   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084568   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084578   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/authentication.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.084589   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084603   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.084616   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084618   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/user.openshift.io/v1?timeout=32s
I0306 17:59:13.084684   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084715   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084752   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.084878   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apiregistration.k8s.io/v1?timeout=32s
I0306 17:59:13.084714   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.084925   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.084947   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.084963   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085009   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085017   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/authorization.k8s.io/v1?timeout=32s
I0306 17:59:13.085050   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085081   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085113   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085261   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apps/v1beta1?timeout=32s
I0306 17:59:13.085306   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085318   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apiregistration.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.085339   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085357   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085372   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085392   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085403   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/authorization.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.085425   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085435   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085522   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085561   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085610   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/packages.apps.redhat.com/v1alpha1?timeout=32s
I0306 17:59:13.085653   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085678   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/admissionregistration.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.085719   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085749   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085782   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085812   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apiextensions.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.085844   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085876   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085908   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085908   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/dns.openshift.io/v1alpha1?timeout=32s
I0306 17:59:13.085685   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.085954   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.085969   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/config.openshift.io/v1?timeout=32s
I0306 17:59:13.086020   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086052   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086085   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085969   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.086298   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/scheduling.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.086339   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086346   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/operator.openshift.io/v1?timeout=32s
I0306 17:59:13.086375   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086396   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086409   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.086431   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086444   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/autoscaling/v2beta1?timeout=32s
I0306 17:59:13.086466   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.086482   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086514   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086546   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.086579   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/healthchecking.openshift.io/v1alpha1?timeout=32s
I0306 17:59:13.086618   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086650   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086684   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.086725   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/imageregistry.operator.openshift.io/v1?timeout=32s
I0306 17:59:13.086759   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086783   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/autoscaling/v2beta2?timeout=32s
I0306 17:59:13.086823   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086854   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086886   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.086926   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/coordination.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.086962   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.086993   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086791   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087025   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087053   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087052   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/ingress.openshift.io/v1alpha1?timeout=32s
I0306 17:59:13.087112   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087165   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087199   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087019   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/k8s.cni.cncf.io/v1?timeout=32s
I0306 17:59:13.087254   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087271   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/machineconfiguration.openshift.io/v1?timeout=32s
I0306 17:59:13.087328   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087363   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087493   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087494   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/multiclusterdns.federation.k8s.io/v1alpha1?timeout=32s
I0306 17:59:13.087517   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/batch/v1?timeout=32s
I0306 17:59:13.087541   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087552   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apps.openshift.io/v1?timeout=32s
I0306 17:59:13.087575   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087591   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087607   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087273   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/marketplace.redhat.com/v1alpha1?timeout=32s
I0306 17:59:13.087660   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087693   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087724   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087809   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/batch/v1beta1?timeout=32s
I0306 17:59:13.087555   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087845   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.087866   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087878   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087903   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087916   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087625   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087979   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.087979   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/operators.coreos.com/v1alpha2?timeout=32s
I0306 17:59:13.088053   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/build.openshift.io/v1?timeout=32s
I0306 17:59:13.088073   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088086   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088105   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088116   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088158   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.088168   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.088281   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/operators.coreos.com/v1alpha1?timeout=32s
I0306 17:59:13.088324   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088357   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088389   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.088389   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/certificates.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.088540   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088574   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088606   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.088619   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/oauth.openshift.io/v1?timeout=32s
I0306 17:59:13.088626   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/networking.k8s.io/v1?timeout=32s
I0306 17:59:13.088674   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088680   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088389   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/image.openshift.io/v1?timeout=32s
I0306 17:59:13.088746   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088779   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088812   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.088845   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/network.openshift.io/v1?timeout=32s
I0306 17:59:13.088881   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088625   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/monitoring.coreos.com/v1?timeout=32s
I0306 17:59:13.088920   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/policy/v1beta1?timeout=32s
I0306 17:59:13.088943   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088954   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/project.openshift.io/v1?timeout=32s
I0306 17:59:13.088966   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088979   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088988   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089015   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089027   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089067   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.088997   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089143   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/networkoperator.openshift.io/v1?timeout=32s
I0306 17:59:13.089185   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089217   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089249   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089261   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/rbac.authorization.k8s.io/v1?timeout=32s
I0306 17:59:13.089298   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089330   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089341   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/quota.openshift.io/v1?timeout=32s
I0306 17:59:13.089144   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089372   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089407   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089430   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/scheduling.federation.k8s.io/v1alpha1?timeout=32s
I0306 17:59:13.089363   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089471   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089500   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089530   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089568   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/rbac.authorization.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.089603   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089439   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089636   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089797   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089637   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/route.openshift.io/v1?timeout=32s
I0306 17:59:13.089839   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/security.openshift.io/v1?timeout=32s
I0306 17:59:13.089858   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089877   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.089890   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089912   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.089922   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089947   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.089878   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/storage.k8s.io/v1?timeout=32s
I0306 17:59:13.090001   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090034   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090068   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.085987   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090109   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/storage.k8s.io/v1beta1?timeout=32s
I0306 17:59:13.084947   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/apps/v1beta2?timeout=32s
I0306 17:59:13.090205   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090220   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/servicecertsigner.config.openshift.io/v1alpha1?timeout=32s
I0306 17:59:13.090260   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090282   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090292   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090328   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090320   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090206   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090455   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090467   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/cloudcredential.openshift.io/v1beta1?timeout=32s
I0306 17:59:13.090491   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090498   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090530   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.086241   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/autoscaling/v1?timeout=32s
I0306 17:59:13.090562   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090586   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090645   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/operatorstatus.openshift.io/v1?timeout=32s
I0306 17:59:13.090147   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090691   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.090727   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.087821   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/authorization.openshift.io/v1?timeout=32s
I0306 17:59:13.090760   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090779   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088707   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090862   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090877   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090810   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/machine.openshift.io/v1beta1?timeout=32s
I0306 17:59:13.090930   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.090932   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.091021   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091064   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.088913   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091178   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.084626   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091220   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/core.federation.k8s.io/v1alpha1?timeout=32s
I0306 17:59:13.087287   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091258   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.091278   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091291   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.090651   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091324   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091342   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091326   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/samples.operator.openshift.io/v1?timeout=32s
I0306 17:59:13.091388   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.088715   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091420   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091441   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091454   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091540   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/cluster.k8s.io/v1alpha1?timeout=32s
I0306 17:59:13.091581   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.091614   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091647   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091711   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/clusterregistry.k8s.io/v1alpha1?timeout=32s
I0306 17:59:13.091753   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.091784   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091816   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.091724   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/tuned.openshift.io/v1?timeout=32s
I0306 17:59:13.091875   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.091906   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.091939   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.092001   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/apis/autoscaling.openshift.io/v1alpha1?timeout=32s
I0306 17:59:13.092081   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.092145   18384 round_trippers.go:393]     Accept: application/json, */*
I0306 17:59:13.092188   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.193602   18384 round_trippers.go:408] Response Status: 200 OK in 109 milliseconds
I0306 17:59:13.193623   18384 round_trippers.go:408] Response Status: 200 OK in 108 milliseconds
I0306 17:59:13.196581   18384 round_trippers.go:408] Response Status: 200 OK in 112 milliseconds
I0306 17:59:13.196581   18384 round_trippers.go:408] Response Status: 200 OK in 112 milliseconds
I0306 17:59:13.200029   18384 round_trippers.go:408] Response Status: 200 OK in 115 milliseconds
I0306 17:59:13.200047   18384 round_trippers.go:408] Response Status: 200 OK in 115 milliseconds
I0306 17:59:13.200679   18384 round_trippers.go:408] Response Status: 200 OK in 115 milliseconds
I0306 17:59:13.200715   18384 round_trippers.go:408] Response Status: 200 OK in 115 milliseconds
I0306 17:59:13.200820   18384 round_trippers.go:408] Response Status: 200 OK in 116 milliseconds
I0306 17:59:13.302265   18384 round_trippers.go:408] Response Status: 200 OK in 217 milliseconds
I0306 17:59:13.302951   18384 round_trippers.go:408] Response Status: 200 OK in 217 milliseconds
I0306 17:59:13.303013   18384 round_trippers.go:408] Response Status: 200 OK in 217 milliseconds
I0306 17:59:13.303013   18384 round_trippers.go:408] Response Status: 200 OK in 217 milliseconds
I0306 17:59:13.311547   18384 round_trippers.go:408] Response Status: 200 OK in 224 milliseconds
I0306 17:59:13.311600   18384 round_trippers.go:408] Response Status: 200 OK in 223 milliseconds
I0306 17:59:13.311699   18384 round_trippers.go:408] Response Status: 200 OK in 224 milliseconds
I0306 17:59:13.311710   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.311764   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.311798   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.311804   18384 round_trippers.go:408] Response Status: 200 OK in 223 milliseconds
I0306 17:59:13.311822   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.311983   18384 round_trippers.go:408] Response Status: 200 OK in 226 milliseconds
I0306 17:59:13.312080   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.312210   18384 round_trippers.go:408] Response Status: 200 OK in 226 milliseconds
I0306 17:59:13.312277   18384 round_trippers.go:408] Response Status: 200 OK in 224 milliseconds
I0306 17:59:13.312277   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.312280   18384 round_trippers.go:408] Response Status: 200 OK in 225 milliseconds
I0306 17:59:13.316063   18384 round_trippers.go:408] Response Status: 200 OK in 227 milliseconds
I0306 17:59:13.316873   18384 round_trippers.go:408] Response Status: 200 OK in 229 milliseconds
I0306 17:59:13.318929   18384 round_trippers.go:408] Response Status: 200 OK in 231 milliseconds
I0306 17:59:13.319088   18384 round_trippers.go:408] Response Status: 200 OK in 231 milliseconds
I0306 17:59:13.319648   18384 round_trippers.go:408] Response Status: 200 OK in 230 milliseconds
I0306 17:59:13.323374   18384 round_trippers.go:408] Response Status: 200 OK in 233 milliseconds
I0306 17:59:13.324855   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.324941   18384 round_trippers.go:408] Response Status: 200 OK in 233 milliseconds
I0306 17:59:13.324998   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.325555   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.325647   18384 round_trippers.go:408] Response Status: 200 OK in 234 milliseconds
I0306 17:59:13.325942   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.326217   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.326426   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.326559   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.326629   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.326872   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.326882   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.327079   18384 round_trippers.go:408] Response Status: 200 OK in 234 milliseconds
I0306 17:59:13.324858   18384 round_trippers.go:408] Response Status: 200 OK in 233 milliseconds
I0306 17:59:13.327162   18384 round_trippers.go:408] Response Status: 200 OK in 237 milliseconds
I0306 17:59:13.327170   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.327271   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.327280   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.327305   18384 round_trippers.go:408] Response Status: 200 OK in 237 milliseconds
I0306 17:59:13.327511   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.327676   18384 round_trippers.go:408] Response Status: 200 OK in 235 milliseconds
I0306 17:59:13.327786   18384 round_trippers.go:408] Response Status: 200 OK in 241 milliseconds
I0306 17:59:13.327786   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.327834   18384 round_trippers.go:408] Response Status: 200 OK in 237 milliseconds
I0306 17:59:13.327930   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.327958   18384 round_trippers.go:408] Response Status: 200 OK in 237 milliseconds
I0306 17:59:13.328023   18384 round_trippers.go:408] Response Status: 200 OK in 239 milliseconds
I0306 17:59:13.328059   18384 round_trippers.go:408] Response Status: 200 OK in 236 milliseconds
I0306 17:59:13.328224   18384 round_trippers.go:408] Response Status: 200 OK in 238 milliseconds
I0306 17:59:13.328294   18384 round_trippers.go:408] Response Status: 200 OK in 239 milliseconds
I0306 17:59:13.328326   18384 round_trippers.go:408] Response Status: 200 OK in 240 milliseconds
I0306 17:59:13.328362   18384 round_trippers.go:408] Response Status: 200 OK in 240 milliseconds
I0306 17:59:13.328402   18384 round_trippers.go:408] Response Status: 200 OK in 238 milliseconds
I0306 17:59:13.328427   18384 round_trippers.go:408] Response Status: 200 OK in 237 milliseconds
I0306 17:59:13.329555   18384 enable.go:219] Found resource "namespaces.core/v1"
I0306 17:59:13.329731   18384 round_trippers.go:383] GET https://api.my-cluster.local.com:6443/openapi/v2?timeout=32s
I0306 17:59:13.329749   18384 round_trippers.go:390] Request Headers:
I0306 17:59:13.329760   18384 round_trippers.go:393]     Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf
I0306 17:59:13.329771   18384 round_trippers.go:393]     User-Agent: kubefed2/v0.0.0 (linux/amd64) kubernetes/$Format
I0306 17:59:13.443960   18384 round_trippers.go:408] Response Status: 200 OK in 114 milliseconds
F0306 17:59:13.719715   18384 enable.go:117] error: Error initializing validation schema accessor: Error loading openapi schema: SchemaError(io.k8s.api.core.v1.EnvFromSource_v2): invalid object doesn't have additional properties
@mvazquezc
Copy link
Member Author

More info:

If I get the required CRD yaml files from a 3.11 cluster I can load the yamls and then the type is federated correctly.

@pmorie
Copy link
Contributor

pmorie commented Mar 8, 2019

@mvazquezc

If I get the required CRD yaml files from a 3.11 cluster

Which CRDs, specifically?

@mvazquezc
Copy link
Member Author

@mvazquezc

If I get the required CRD yaml files from a 3.11 cluster

Which CRDs, specifically?

For example for deployments federation we would use these yamls:

federateddeployments.yaml

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: federateddeployments.primitives.federation.k8s.io
spec:
  additionalPrinterColumns:
  - JSONPath: .metadata.creationTimestamp
    description: |-
      CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

      Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    name: Age
    type: date
  group: primitives.federation.k8s.io
  names:
    kind: FederatedDeployment
    listKind: FederatedDeploymentList
    plural: federateddeployments
    singular: federateddeployment
  scope: Namespaced
  validation:
    openAPIV3Schema:
      properties:
        apiVersion:
          type: string
        kind:
          type: string
        metadata:
          type: object
        spec:
          properties:
            template:
              properties:
                apiVersion:
                  type: string
                kind:
                  type: string
                metadata:
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    clusterName:
                      type: string
                    creationTimestamp:
                      format: date-time
                      type: string
                    deletionGracePeriodSeconds:
                      format: int64
                      type: integer
                    deletionTimestamp:
                      format: date-time
                      type: string
                    finalizers:
                      items:
                        type: string
                      type: array
                    generateName:
                      type: string
                    generation:
                      format: int64
                      type: integer
                    initializers:
                      properties:
                        pending:
                          items:
                            properties:
                              name:
                                type: string
                            required:
                            - name
                            type: object
                          type: array
                        result:
                          properties:
                            apiVersion:
                              type: string
                            code:
                              format: int32
                              type: integer
                            details:
                              properties:
                                causes:
                                  items:
                                    properties:
                                      field:
                                        type: string
                                      message:
                                        type: string
                                      reason:
                                        type: string
                                    type: object
                                  type: array
                                group:
                                  type: string
                                kind:
                                  type: string
                                name:
                                  type: string
                                retryAfterSeconds:
                                  format: int32
                                  type: integer
                                uid:
                                  type: string
                              type: object
                            kind:
                              type: string
                            message:
                              type: string
                            metadata:
                              properties:
                                continue:
                                  type: string
                                resourceVersion:
                                  type: string
                                selfLink:
                                  type: string
                              type: object
                            reason:
                              type: string
                          type: object
                      required:
                      - pending
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      type: object
                    name:
                      type: string
                    namespace:
                      type: string
                    ownerReferences:
                      items:
                        properties:
                          apiVersion:
                            type: string
                          blockOwnerDeletion:
                            type: boolean
                          controller:
                            type: boolean
                          kind:
                            type: string
                          name:
                            type: string
                          uid:
                            type: string
                        required:
                        - apiVersion
                        - kind
                        - name
                        - uid
                        type: object
                      type: array
                    resourceVersion:
                      type: string
                    selfLink:
                      type: string
                    uid:
                      type: string
                  type: object
                spec:
                  properties:
                    minReadySeconds:
                      format: int32
                      type: integer
                    paused:
                      type: boolean
                    progressDeadlineSeconds:
                      format: int32
                      type: integer
                    replicas:
                      format: int32
                      type: integer
                    revisionHistoryLimit:
                      format: int32
                      type: integer
                    selector:
                      properties:
                        matchExpressions:
                          items:
                            properties:
                              key:
                                type: string
                              operator:
                                type: string
                              values:
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                        matchLabels:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    strategy:
                      properties:
                        rollingUpdate:
                          properties:
                            maxSurge:
                              anyOf:
                              - format: int32
                                type: integer
                              - type: string
                            maxUnavailable:
                              anyOf:
                              - format: int32
                                type: integer
                              - type: string
                          type: object
                        type:
                          type: string
                      type: object
                    template:
                      properties:
                        metadata:
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              type: object
                            clusterName:
                              type: string
                            creationTimestamp:
                              format: date-time
                              type: string
                            deletionGracePeriodSeconds:
                              format: int64
                              type: integer
                            deletionTimestamp:
                              format: date-time
                              type: string
                            finalizers:
                              items:
                                type: string
                              type: array
                            generateName:
                              type: string
                            generation:
                              format: int64
                              type: integer
                            initializers:
                              properties:
                                pending:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                    required:
                                    - name
                                    type: object
                                  type: array
                                result:
                                  properties:
                                    apiVersion:
                                      type: string
                                    code:
                                      format: int32
                                      type: integer
                                    details:
                                      properties:
                                        causes:
                                          items:
                                            properties:
                                              field:
                                                type: string
                                              message:
                                                type: string
                                              reason:
                                                type: string
                                            type: object
                                          type: array
                                        group:
                                          type: string
                                        kind:
                                          type: string
                                        name:
                                          type: string
                                        retryAfterSeconds:
                                          format: int32
                                          type: integer
                                        uid:
                                          type: string
                                      type: object
                                    kind:
                                      type: string
                                    message:
                                      type: string
                                    metadata:
                                      properties:
                                        continue:
                                          type: string
                                        resourceVersion:
                                          type: string
                                        selfLink:
                                          type: string
                                      type: object
                                    reason:
                                      type: string
                                  type: object
                              required:
                              - pending
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              type: object
                            name:
                              type: string
                            namespace:
                              type: string
                            ownerReferences:
                              items:
                                properties:
                                  apiVersion:
                                    type: string
                                  blockOwnerDeletion:
                                    type: boolean
                                  controller:
                                    type: boolean
                                  kind:
                                    type: string
                                  name:
                                    type: string
                                  uid:
                                    type: string
                                required:
                                - apiVersion
                                - kind
                                - name
                                - uid
                                type: object
                              type: array
                            resourceVersion:
                              type: string
                            selfLink:
                              type: string
                            uid:
                              type: string
                          type: object
                        spec:
                          properties:
                            activeDeadlineSeconds:
                              format: int64
                              type: integer
                            affinity:
                              properties:
                                nodeAffinity:
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          preference:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                              matchFields:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                          weight:
                                            format: int32
                                            type: integer
                                        required:
                                        - weight
                                        - preference
                                        type: object
                                      type: array
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      properties:
                                        nodeSelectorTerms:
                                          items:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                              matchFields:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                            type: object
                                          type: array
                                      required:
                                      - nodeSelectorTerms
                                      type: object
                                  type: object
                                podAffinity:
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          podAffinityTerm:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                      required:
                                                      - key
                                                      - operator
                                                      type: object
                                                    type: array
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              namespaces:
                                                items:
                                                  type: string
                                                type: array
                                              topologyKey:
                                                type: string
                                            required:
                                            - topologyKey
                                            type: object
                                          weight:
                                            format: int32
                                            type: integer
                                        required:
                                        - weight
                                        - podAffinityTerm
                                        type: object
                                      type: array
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          namespaces:
                                            items:
                                              type: string
                                            type: array
                                          topologyKey:
                                            type: string
                                        required:
                                        - topologyKey
                                        type: object
                                      type: array
                                  type: object
                                podAntiAffinity:
                                  properties:
                                    preferredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          podAffinityTerm:
                                            properties:
                                              labelSelector:
                                                properties:
                                                  matchExpressions:
                                                    items:
                                                      properties:
                                                        key:
                                                          type: string
                                                        operator:
                                                          type: string
                                                        values:
                                                          items:
                                                            type: string
                                                          type: array
                                                      required:
                                                      - key
                                                      - operator
                                                      type: object
                                                    type: array
                                                  matchLabels:
                                                    additionalProperties:
                                                      type: string
                                                    type: object
                                                type: object
                                              namespaces:
                                                items:
                                                  type: string
                                                type: array
                                              topologyKey:
                                                type: string
                                            required:
                                            - topologyKey
                                            type: object
                                          weight:
                                            format: int32
                                            type: integer
                                        required:
                                        - weight
                                        - podAffinityTerm
                                        type: object
                                      type: array
                                    requiredDuringSchedulingIgnoredDuringExecution:
                                      items:
                                        properties:
                                          labelSelector:
                                            properties:
                                              matchExpressions:
                                                items:
                                                  properties:
                                                    key:
                                                      type: string
                                                    operator:
                                                      type: string
                                                    values:
                                                      items:
                                                        type: string
                                                      type: array
                                                  required:
                                                  - key
                                                  - operator
                                                  type: object
                                                type: array
                                              matchLabels:
                                                additionalProperties:
                                                  type: string
                                                type: object
                                            type: object
                                          namespaces:
                                            items:
                                              type: string
                                            type: array
                                          topologyKey:
                                            type: string
                                        required:
                                        - topologyKey
                                        type: object
                                      type: array
                                  type: object
                              type: object
                            automountServiceAccountToken:
                              type: boolean
                            containers:
                              items:
                                properties:
                                  args:
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    items:
                                      type: string
                                    type: array
                                  env:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                        valueFrom:
                                          properties:
                                            configMapKeyRef:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  type: string
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                            secretKeyRef:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                  envFrom:
                                    items:
                                      properties:
                                        configMapRef:
                                          properties:
                                            name:
                                              type: string
                                            optional:
                                              type: boolean
                                          type: object
                                        prefix:
                                          type: string
                                        secretRef:
                                          properties:
                                            name:
                                              type: string
                                            optional:
                                              type: boolean
                                          type: object
                                      type: object
                                    type: array
                                  image:
                                    type: string
                                  imagePullPolicy:
                                    type: string
                                  lifecycle:
                                    properties:
                                      postStart:
                                        properties:
                                          exec:
                                            properties:
                                              command:
                                                items:
                                                  type: string
                                                type: array
                                            type: object
                                          httpGet:
                                            properties:
                                              host:
                                                type: string
                                              httpHeaders:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                              scheme:
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          tcpSocket:
                                            properties:
                                              host:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                            required:
                                            - port
                                            type: object
                                        type: object
                                      preStop:
                                        properties:
                                          exec:
                                            properties:
                                              command:
                                                items:
                                                  type: string
                                                type: array
                                            type: object
                                          httpGet:
                                            properties:
                                              host:
                                                type: string
                                              httpHeaders:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                              scheme:
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          tcpSocket:
                                            properties:
                                              host:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                            required:
                                            - port
                                            type: object
                                        type: object
                                    type: object
                                  livenessProbe:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      failureThreshold:
                                        format: int32
                                        type: integer
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                        required:
                                        - port
                                        type: object
                                      timeoutSeconds:
                                        format: int32
                                        type: integer
                                    type: object
                                  name:
                                    type: string
                                  ports:
                                    items:
                                      properties:
                                        containerPort:
                                          format: int32
                                          type: integer
                                        hostIP:
                                          type: string
                                        hostPort:
                                          format: int32
                                          type: integer
                                        name:
                                          type: string
                                        protocol:
                                          type: string
                                      required:
                                      - containerPort
                                      type: object
                                    type: array
                                  readinessProbe:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      failureThreshold:
                                        format: int32
                                        type: integer
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                        required:
                                        - port
                                        type: object
                                      timeoutSeconds:
                                        format: int32
                                        type: integer
                                    type: object
                                  resources:
                                    properties:
                                      limits:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      requests:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  securityContext:
                                    properties:
                                      allowPrivilegeEscalation:
                                        type: boolean
                                      capabilities:
                                        properties:
                                          add:
                                            items:
                                              type: string
                                            type: array
                                          drop:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      privileged:
                                        type: boolean
                                      readOnlyRootFilesystem:
                                        type: boolean
                                      runAsGroup:
                                        format: int64
                                        type: integer
                                      runAsNonRoot:
                                        type: boolean
                                      runAsUser:
                                        format: int64
                                        type: integer
                                      seLinuxOptions:
                                        properties:
                                          level:
                                            type: string
                                          role:
                                            type: string
                                          type:
                                            type: string
                                          user:
                                            type: string
                                        type: object
                                    type: object
                                  stdin:
                                    type: boolean
                                  stdinOnce:
                                    type: boolean
                                  terminationMessagePath:
                                    type: string
                                  terminationMessagePolicy:
                                    type: string
                                  tty:
                                    type: boolean
                                  volumeDevices:
                                    items:
                                      properties:
                                        devicePath:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - name
                                      - devicePath
                                      type: object
                                    type: array
                                  volumeMounts:
                                    items:
                                      properties:
                                        mountPath:
                                          type: string
                                        mountPropagation:
                                          type: string
                                        name:
                                          type: string
                                        readOnly:
                                          type: boolean
                                        subPath:
                                          type: string
                                      required:
                                      - name
                                      - mountPath
                                      type: object
                                    type: array
                                  workingDir:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                            dnsConfig:
                              properties:
                                nameservers:
                                  items:
                                    type: string
                                  type: array
                                options:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    type: object
                                  type: array
                                searches:
                                  items:
                                    type: string
                                  type: array
                              type: object
                            dnsPolicy:
                              type: string
                            hostAliases:
                              items:
                                properties:
                                  hostnames:
                                    items:
                                      type: string
                                    type: array
                                  ip:
                                    type: string
                                type: object
                              type: array
                            hostIPC:
                              type: boolean
                            hostNetwork:
                              type: boolean
                            hostPID:
                              type: boolean
                            hostname:
                              type: string
                            imagePullSecrets:
                              items:
                                properties:
                                  name:
                                    type: string
                                type: object
                              type: array
                            initContainers:
                              items:
                                properties:
                                  args:
                                    items:
                                      type: string
                                    type: array
                                  command:
                                    items:
                                      type: string
                                    type: array
                                  env:
                                    items:
                                      properties:
                                        name:
                                          type: string
                                        value:
                                          type: string
                                        valueFrom:
                                          properties:
                                            configMapKeyRef:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  type: string
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                            secretKeyRef:
                                              properties:
                                                key:
                                                  type: string
                                                name:
                                                  type: string
                                                optional:
                                                  type: boolean
                                              required:
                                              - key
                                              type: object
                                          type: object
                                      required:
                                      - name
                                      type: object
                                    type: array
                                  envFrom:
                                    items:
                                      properties:
                                        configMapRef:
                                          properties:
                                            name:
                                              type: string
                                            optional:
                                              type: boolean
                                          type: object
                                        prefix:
                                          type: string
                                        secretRef:
                                          properties:
                                            name:
                                              type: string
                                            optional:
                                              type: boolean
                                          type: object
                                      type: object
                                    type: array
                                  image:
                                    type: string
                                  imagePullPolicy:
                                    type: string
                                  lifecycle:
                                    properties:
                                      postStart:
                                        properties:
                                          exec:
                                            properties:
                                              command:
                                                items:
                                                  type: string
                                                type: array
                                            type: object
                                          httpGet:
                                            properties:
                                              host:
                                                type: string
                                              httpHeaders:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                              scheme:
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          tcpSocket:
                                            properties:
                                              host:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                            required:
                                            - port
                                            type: object
                                        type: object
                                      preStop:
                                        properties:
                                          exec:
                                            properties:
                                              command:
                                                items:
                                                  type: string
                                                type: array
                                            type: object
                                          httpGet:
                                            properties:
                                              host:
                                                type: string
                                              httpHeaders:
                                                items:
                                                  properties:
                                                    name:
                                                      type: string
                                                    value:
                                                      type: string
                                                  required:
                                                  - name
                                                  - value
                                                  type: object
                                                type: array
                                              path:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                              scheme:
                                                type: string
                                            required:
                                            - port
                                            type: object
                                          tcpSocket:
                                            properties:
                                              host:
                                                type: string
                                              port:
                                                anyOf:
                                                - format: int32
                                                  type: integer
                                                - type: string
                                            required:
                                            - port
                                            type: object
                                        type: object
                                    type: object
                                  livenessProbe:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      failureThreshold:
                                        format: int32
                                        type: integer
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                        required:
                                        - port
                                        type: object
                                      timeoutSeconds:
                                        format: int32
                                        type: integer
                                    type: object
                                  name:
                                    type: string
                                  ports:
                                    items:
                                      properties:
                                        containerPort:
                                          format: int32
                                          type: integer
                                        hostIP:
                                          type: string
                                        hostPort:
                                          format: int32
                                          type: integer
                                        name:
                                          type: string
                                        protocol:
                                          type: string
                                      required:
                                      - containerPort
                                      type: object
                                    type: array
                                  readinessProbe:
                                    properties:
                                      exec:
                                        properties:
                                          command:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      failureThreshold:
                                        format: int32
                                        type: integer
                                      httpGet:
                                        properties:
                                          host:
                                            type: string
                                          httpHeaders:
                                            items:
                                              properties:
                                                name:
                                                  type: string
                                                value:
                                                  type: string
                                              required:
                                              - name
                                              - value
                                              type: object
                                            type: array
                                          path:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                          scheme:
                                            type: string
                                        required:
                                        - port
                                        type: object
                                      initialDelaySeconds:
                                        format: int32
                                        type: integer
                                      periodSeconds:
                                        format: int32
                                        type: integer
                                      successThreshold:
                                        format: int32
                                        type: integer
                                      tcpSocket:
                                        properties:
                                          host:
                                            type: string
                                          port:
                                            anyOf:
                                            - format: int32
                                              type: integer
                                            - type: string
                                        required:
                                        - port
                                        type: object
                                      timeoutSeconds:
                                        format: int32
                                        type: integer
                                    type: object
                                  resources:
                                    properties:
                                      limits:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      requests:
                                        additionalProperties:
                                          type: string
                                        type: object
                                    type: object
                                  securityContext:
                                    properties:
                                      allowPrivilegeEscalation:
                                        type: boolean
                                      capabilities:
                                        properties:
                                          add:
                                            items:
                                              type: string
                                            type: array
                                          drop:
                                            items:
                                              type: string
                                            type: array
                                        type: object
                                      privileged:
                                        type: boolean
                                      readOnlyRootFilesystem:
                                        type: boolean
                                      runAsGroup:
                                        format: int64
                                        type: integer
                                      runAsNonRoot:
                                        type: boolean
                                      runAsUser:
                                        format: int64
                                        type: integer
                                      seLinuxOptions:
                                        properties:
                                          level:
                                            type: string
                                          role:
                                            type: string
                                          type:
                                            type: string
                                          user:
                                            type: string
                                        type: object
                                    type: object
                                  stdin:
                                    type: boolean
                                  stdinOnce:
                                    type: boolean
                                  terminationMessagePath:
                                    type: string
                                  terminationMessagePolicy:
                                    type: string
                                  tty:
                                    type: boolean
                                  volumeDevices:
                                    items:
                                      properties:
                                        devicePath:
                                          type: string
                                        name:
                                          type: string
                                      required:
                                      - name
                                      - devicePath
                                      type: object
                                    type: array
                                  volumeMounts:
                                    items:
                                      properties:
                                        mountPath:
                                          type: string
                                        mountPropagation:
                                          type: string
                                        name:
                                          type: string
                                        readOnly:
                                          type: boolean
                                        subPath:
                                          type: string
                                      required:
                                      - name
                                      - mountPath
                                      type: object
                                    type: array
                                  workingDir:
                                    type: string
                                required:
                                - name
                                type: object
                              type: array
                            nodeName:
                              type: string
                            nodeSelector:
                              additionalProperties:
                                type: string
                              type: object
                            priority:
                              format: int32
                              type: integer
                            priorityClassName:
                              type: string
                            readinessGates:
                              items:
                                properties:
                                  conditionType:
                                    type: string
                                required:
                                - conditionType
                                type: object
                              type: array
                            restartPolicy:
                              type: string
                            schedulerName:
                              type: string
                            securityContext:
                              properties:
                                fsGroup:
                                  format: int64
                                  type: integer
                                runAsGroup:
                                  format: int64
                                  type: integer
                                runAsNonRoot:
                                  type: boolean
                                runAsUser:
                                  format: int64
                                  type: integer
                                seLinuxOptions:
                                  properties:
                                    level:
                                      type: string
                                    role:
                                      type: string
                                    type:
                                      type: string
                                    user:
                                      type: string
                                  type: object
                                supplementalGroups:
                                  items:
                                    format: int64
                                    type: integer
                                  type: array
                                sysctls:
                                  items:
                                    properties:
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                              type: object
                            serviceAccount:
                              type: string
                            serviceAccountName:
                              type: string
                            shareProcessNamespace:
                              type: boolean
                            subdomain:
                              type: string
                            terminationGracePeriodSeconds:
                              format: int64
                              type: integer
                            tolerations:
                              items:
                                properties:
                                  effect:
                                    type: string
                                  key:
                                    type: string
                                  operator:
                                    type: string
                                  tolerationSeconds:
                                    format: int64
                                    type: integer
                                  value:
                                    type: string
                                type: object
                              type: array
                            volumes:
                              items:
                                properties:
                                  awsElasticBlockStore:
                                    properties:
                                      fsType:
                                        type: string
                                      partition:
                                        format: int32
                                        type: integer
                                      readOnly:
                                        type: boolean
                                      volumeID:
                                        type: string
                                    required:
                                    - volumeID
                                    type: object
                                  azureDisk:
                                    properties:
                                      cachingMode:
                                        type: string
                                      diskName:
                                        type: string
                                      diskURI:
                                        type: string
                                      fsType:
                                        type: string
                                      kind:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    required:
                                    - diskName
                                    - diskURI
                                    type: object
                                  azureFile:
                                    properties:
                                      readOnly:
                                        type: boolean
                                      secretName:
                                        type: string
                                      shareName:
                                        type: string
                                    required:
                                    - secretName
                                    - shareName
                                    type: object
                                  cephfs:
                                    properties:
                                      monitors:
                                        items:
                                          type: string
                                        type: array
                                      path:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      secretFile:
                                        type: string
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                      user:
                                        type: string
                                    required:
                                    - monitors
                                    type: object
                                  cinder:
                                    properties:
                                      fsType:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                      volumeID:
                                        type: string
                                    required:
                                    - volumeID
                                    type: object
                                  configMap:
                                    properties:
                                      defaultMode:
                                        format: int32
                                        type: integer
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      name:
                                        type: string
                                      optional:
                                        type: boolean
                                    type: object
                                  downwardAPI:
                                    properties:
                                      defaultMode:
                                        format: int32
                                        type: integer
                                      items:
                                        items:
                                          properties:
                                            fieldRef:
                                              properties:
                                                apiVersion:
                                                  type: string
                                                fieldPath:
                                                  type: string
                                              required:
                                              - fieldPath
                                              type: object
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                            resourceFieldRef:
                                              properties:
                                                containerName:
                                                  type: string
                                                divisor:
                                                  type: string
                                                resource:
                                                  type: string
                                              required:
                                              - resource
                                              type: object
                                          required:
                                          - path
                                          type: object
                                        type: array
                                    type: object
                                  emptyDir:
                                    properties:
                                      medium:
                                        type: string
                                      sizeLimit:
                                        type: string
                                    type: object
                                  fc:
                                    properties:
                                      fsType:
                                        type: string
                                      lun:
                                        format: int32
                                        type: integer
                                      readOnly:
                                        type: boolean
                                      targetWWNs:
                                        items:
                                          type: string
                                        type: array
                                      wwids:
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  flexVolume:
                                    properties:
                                      driver:
                                        type: string
                                      fsType:
                                        type: string
                                      options:
                                        additionalProperties:
                                          type: string
                                        type: object
                                      readOnly:
                                        type: boolean
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                    required:
                                    - driver
                                    type: object
                                  flocker:
                                    properties:
                                      datasetName:
                                        type: string
                                      datasetUUID:
                                        type: string
                                    type: object
                                  gcePersistentDisk:
                                    properties:
                                      fsType:
                                        type: string
                                      partition:
                                        format: int32
                                        type: integer
                                      pdName:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    required:
                                    - pdName
                                    type: object
                                  gitRepo:
                                    properties:
                                      directory:
                                        type: string
                                      repository:
                                        type: string
                                      revision:
                                        type: string
                                    required:
                                    - repository
                                    type: object
                                  glusterfs:
                                    properties:
                                      endpoints:
                                        type: string
                                      path:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    required:
                                    - endpoints
                                    - path
                                    type: object
                                  hostPath:
                                    properties:
                                      path:
                                        type: string
                                      type:
                                        type: string
                                    required:
                                    - path
                                    type: object
                                  iscsi:
                                    properties:
                                      chapAuthDiscovery:
                                        type: boolean
                                      chapAuthSession:
                                        type: boolean
                                      fsType:
                                        type: string
                                      initiatorName:
                                        type: string
                                      iqn:
                                        type: string
                                      iscsiInterface:
                                        type: string
                                      lun:
                                        format: int32
                                        type: integer
                                      portals:
                                        items:
                                          type: string
                                        type: array
                                      readOnly:
                                        type: boolean
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                      targetPortal:
                                        type: string
                                    required:
                                    - targetPortal
                                    - iqn
                                    - lun
                                    type: object
                                  name:
                                    type: string
                                  nfs:
                                    properties:
                                      path:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      server:
                                        type: string
                                    required:
                                    - server
                                    - path
                                    type: object
                                  persistentVolumeClaim:
                                    properties:
                                      claimName:
                                        type: string
                                      readOnly:
                                        type: boolean
                                    required:
                                    - claimName
                                    type: object
                                  photonPersistentDisk:
                                    properties:
                                      fsType:
                                        type: string
                                      pdID:
                                        type: string
                                    required:
                                    - pdID
                                    type: object
                                  portworxVolume:
                                    properties:
                                      fsType:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      volumeID:
                                        type: string
                                    required:
                                    - volumeID
                                    type: object
                                  projected:
                                    properties:
                                      defaultMode:
                                        format: int32
                                        type: integer
                                      sources:
                                        items:
                                          properties:
                                            configMap:
                                              properties:
                                                items:
                                                  items:
                                                    properties:
                                                      key:
                                                        type: string
                                                      mode:
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        type: string
                                                    required:
                                                    - key
                                                    - path
                                                    type: object
                                                  type: array
                                                name:
                                                  type: string
                                                optional:
                                                  type: boolean
                                              type: object
                                            downwardAPI:
                                              properties:
                                                items:
                                                  items:
                                                    properties:
                                                      fieldRef:
                                                        properties:
                                                          apiVersion:
                                                            type: string
                                                          fieldPath:
                                                            type: string
                                                        required:
                                                        - fieldPath
                                                        type: object
                                                      mode:
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        type: string
                                                      resourceFieldRef:
                                                        properties:
                                                          containerName:
                                                            type: string
                                                          divisor:
                                                            type: string
                                                          resource:
                                                            type: string
                                                        required:
                                                        - resource
                                                        type: object
                                                    required:
                                                    - path
                                                    type: object
                                                  type: array
                                              type: object
                                            secret:
                                              properties:
                                                items:
                                                  items:
                                                    properties:
                                                      key:
                                                        type: string
                                                      mode:
                                                        format: int32
                                                        type: integer
                                                      path:
                                                        type: string
                                                    required:
                                                    - key
                                                    - path
                                                    type: object
                                                  type: array
                                                name:
                                                  type: string
                                                optional:
                                                  type: boolean
                                              type: object
                                            serviceAccountToken:
                                              properties:
                                                audience:
                                                  type: string
                                                expirationSeconds:
                                                  format: int64
                                                  type: integer
                                                path:
                                                  type: string
                                              required:
                                              - path
                                              type: object
                                          type: object
                                        type: array
                                    required:
                                    - sources
                                    type: object
                                  quobyte:
                                    properties:
                                      group:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      registry:
                                        type: string
                                      user:
                                        type: string
                                      volume:
                                        type: string
                                    required:
                                    - registry
                                    - volume
                                    type: object
                                  rbd:
                                    properties:
                                      fsType:
                                        type: string
                                      image:
                                        type: string
                                      keyring:
                                        type: string
                                      monitors:
                                        items:
                                          type: string
                                        type: array
                                      pool:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                      user:
                                        type: string
                                    required:
                                    - monitors
                                    - image
                                    type: object
                                  scaleIO:
                                    properties:
                                      fsType:
                                        type: string
                                      gateway:
                                        type: string
                                      protectionDomain:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                      sslEnabled:
                                        type: boolean
                                      storageMode:
                                        type: string
                                      storagePool:
                                        type: string
                                      system:
                                        type: string
                                      volumeName:
                                        type: string
                                    required:
                                    - gateway
                                    - system
                                    - secretRef
                                    type: object
                                  secret:
                                    properties:
                                      defaultMode:
                                        format: int32
                                        type: integer
                                      items:
                                        items:
                                          properties:
                                            key:
                                              type: string
                                            mode:
                                              format: int32
                                              type: integer
                                            path:
                                              type: string
                                          required:
                                          - key
                                          - path
                                          type: object
                                        type: array
                                      optional:
                                        type: boolean
                                      secretName:
                                        type: string
                                    type: object
                                  storageos:
                                    properties:
                                      fsType:
                                        type: string
                                      readOnly:
                                        type: boolean
                                      secretRef:
                                        properties:
                                          name:
                                            type: string
                                        type: object
                                      volumeName:
                                        type: string
                                      volumeNamespace:
                                        type: string
                                    type: object
                                  vsphereVolume:
                                    properties:
                                      fsType:
                                        type: string
                                      storagePolicyID:
                                        type: string
                                      storagePolicyName:
                                        type: string
                                      volumePath:
                                        type: string
                                    required:
                                    - volumePath
                                    type: object
                                required:
                                - name
                                type: object
                              type: array
                          required:
                          - containers
                          type: object
                      type: object
                  required:
                  - selector
                  - template
                  type: object
              type: object
          type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true

federateddeploymentplacements.yaml

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: federateddeploymentplacements.primitives.federation.k8s.io
spec:
  additionalPrinterColumns:
  - JSONPath: .metadata.creationTimestamp
    description: |-
      CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

      Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    name: Age
    type: date
  group: primitives.federation.k8s.io
  names:
    kind: FederatedDeploymentPlacement
    listKind: FederatedDeploymentPlacementList
    plural: federateddeploymentplacements
    singular: federateddeploymentplacement
  scope: Namespaced
  validation:
    openAPIV3Schema:
      properties:
        apiVersion:
          type: string
        kind:
          type: string
        metadata:
          type: object
        spec:
          properties:
            clusterNames:
              items:
                type: string
              type: array
            clusterSelector:
              properties:
                matchExpressions:
                  items:
                    properties:
                      key:
                        type: string
                      operator:
                        type: string
                      values:
                        items:
                          type: string
                        type: array
                    required:
                    - key
                    - operator
                    type: object
                  type: array
                matchLabels:
                  additionalProperties:
                    type: string
                  type: object
              type: object
          type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true

federateddeploymentoverrides.yaml

apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: federateddeploymentoverrides.primitives.federation.k8s.io
spec:
  additionalPrinterColumns:
  - JSONPath: .metadata.creationTimestamp
    description: |-
      CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

      Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    name: Age
    type: date
  group: primitives.federation.k8s.io
  names:
    kind: FederatedDeploymentOverride
    listKind: FederatedDeploymentOverrideList
    plural: federateddeploymentoverrides
    singular: federateddeploymentoverride
  scope: Namespaced
  validation:
    openAPIV3Schema:
      properties:
        apiVersion:
          type: string
        kind:
          type: string
        metadata:
          type: object
        spec:
          properties:
            overrides:
              items:
                properties:
                  clusterName:
                    type: string
                  clusterOverrides:
                    items:
                      properties:
                        path:
                          type: string
                        value:
                          anyOf:
                          - type: string
                          - type: integer
                          - type: boolean
                          - type: object
                          - type: array
                      type: object
                    type: array
                type: object
              type: array
          type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true

federateddeploymenttypeconfig.yaml

apiVersion: core.federation.k8s.io/v1alpha1
kind: FederatedTypeConfig
metadata:
  name: deployments.apps
  namespace: federation-system
spec:
  comparisonField: Generation
  namespaced: true
  override:
    group: primitives.federation.k8s.io
    kind: FederatedDeploymentOverride
    pluralName: federateddeploymentoverrides
    version: v1alpha1
  placement:
    group: primitives.federation.k8s.io
    kind: FederatedDeploymentPlacement
    pluralName: federateddeploymentplacements
    version: v1alpha1
  propagationEnabled: true
  target:
    group: apps
    kind: Deployment
    pluralName: deployments
    version: v1
  template:
    group: primitives.federation.k8s.io
    kind: FederatedDeployment
    pluralName: federateddeployments
    version: v1alpha1

@marun
Copy link

marun commented Mar 11, 2019

@mvazquezc Please avoid posting so much content in the issue, it makes it really hard to navigate. Linking to a gist or pastebin is the way to go.

My understanding is that 4.0 is supposed to be returning openapi schema that includes both openshift and kubernetes. If that's not the case, it would explain the problem you are seeing. I'll be deploying a 4.0 cluster this afternoon and see if I can replicate the problem.

@pmorie
Copy link
Contributor

pmorie commented Mar 11, 2019

I've been able to replicate this problem with the ns-scoped CSV

@pmorie
Copy link
Contributor

pmorie commented Mar 11, 2019

I'm investigating now

@mvazquezc
Copy link
Member Author

It works using master branch and kubefed2 version:

version.Info{Version:"v0.0.6-73-g1762b4f2", GitCommit:"1762b4f230afdd5e2005d46b54992f88f9efe0a0", GitTreeState:"clean", BuildDate:"2019-03-18T14:09:15Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}

@openshift-bot
Copy link

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci-robot openshift-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 4, 2020
@openshift-bot
Copy link

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci-robot openshift-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Oct 4, 2020
@openshift-bot
Copy link

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

@openshift-ci-robot
Copy link

@openshift-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
Development

No branches or pull requests

5 participants