Issue 1:
There's two parts to this.

Add a function to runtime which will generate a json schema for a given API object: http://json-schema.org/

Add a function to apiserver that just walks through all registered resources and emits this: http://raml.org/

This will allow us to add a -raml flag to the apiserver binary and get up to date docs on demand.

Issue 2:
Is this a request for help? (If yes, you should use our troubleshooting guide and community support channels, see http://kubernetes.io/docs/troubleshooting/.):

What keywords did you search in Kubernetes issues before filing this one? (If you have found any duplicates, you should instead reply there.):

Is this a BUG REPORT or FEATURE REQUEST? (choose one):

BUG REPORT

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"4", GitVersion:"v1.4.4", GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56", GitTreeState:"clean", BuildDate:"2016-10-21T02:48:38Z", GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/amd64"}

Unable to connect to the server: x509: cannot validate certificate for 10.37.116.27 because it doesn't contain any IP SANs

Environment:

Cloud provider or hardware configuration:

OS (e.g. from /etc/os-release):

cat /etc/os-release

NAME="CentOS Linux"

VERSION="7 (Core)"

ID="centos"

ID_LIKE="rhel fedora"

VERSION_ID="7"

PRETTY_NAME="CentOS Linux 7 (Core)"

ANSI_COLOR="0;31"

CPE_NAME="cpe:/o:centos:centos:7"

HOME_URL="https://www.centos.org/"

BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"

CENTOS_MANTISBT_PROJECT_VERSION="7"

REDHAT_SUPPORT_PRODUCT="centos"

REDHAT_SUPPORT_PRODUCT_VERSION="7"

Kernel (e.g. uname -a):

uname -a

Linux k8smaster 4.8.4-1.el7.elrepo.x86_64 #1 SMP Sat Oct 22 11:47:38 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

Install tools:

Others:

What happened:

E1102 14:09:21.532058 21349 reflector.go:214] k8s.io/kubernetes/plugin/pkg/admission/resourcequota/resource_access.go:83: Failed to list *api.ResourceQuota: Get http://127.0.0.1:8080/api/v1/resourcequotas?resourceVersion=0: dial tcp 127.0.0.1:8080: getsockopt: connection refused

E1102 14:09:21.532344 21349 reflector.go:214] k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go:119: Failed to list *api.Secret: Get http://127.0.0.1:8080/api/v1/secrets?fieldSelector=type%3Dkubernetes.io%2Fservice-account-token&resourceVersion=0: dial tcp 127.0.0.1:8080: getsockopt: connection refused

E1102 14:09:21.532430 21349 reflector.go:214] k8s.io/kubernetes/plugin/pkg/admission/serviceaccount/admission.go:103: Failed to list *api.ServiceAccount: Get http://127.0.0.1:8080/api/v1/serviceaccounts?resourceVersion=0: dial tcp 127.0.0.1:8080: getsockopt: connection refused

E1102 14:09:21.532519 21349 reflector.go:203] k8s.io/kubernetes/plugin/pkg/admission/limitranger/admission.go:154: Failed to list *api.LimitRange: Get http://127.0.0.1:8080/api/v1/limitranges?resourceVersion=0: dial tcp 127.0.0.1:8080: getsockopt: connection refused

What you expected to happen:

curl -L http://127.0.0.1:8080/api/v1/limitranges?resourceVersion=0

{

"kind": "LimitRangeList",

"apiVersion": "v1",

"metadata": {

"selfLink": "/api/v1/limitranges",

"resourceVersion": "13351"

},

"items": []

}

How to reproduce it (as minimally and precisely as possible):

Anything else do we need to know: