diff --git a/.travis.yml b/.travis.yml index 2984726e58..384edc5f5c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,5 +18,5 @@ install: script: # TODO(bep) -#- go test -v k8s.io/website/test +- go test -v k8s.io/website/test #fixed by https://github.com/kubernetes/website/pull/8388 #- ./verify-docs-format.sh diff --git a/test/examples_test.go b/test/examples_test.go index 6cb9743911..bc94dec7ec 100644 --- a/test/examples_test.go +++ b/test/examples_test.go @@ -267,26 +267,26 @@ func walkConfigFiles(inDir string, fn func(name, path string, data [][]byte)) er func TestExampleObjectSchemas(t *testing.T) { // Please help maintain the alphabeta order in the map cases := map[string]map[string][]runtime.Object{ - "../docs/admin/high-availability": { + "docs/admin/high-availability": { "etcd": {&api.Pod{}}, "kube-apiserver": {&api.Pod{}}, "kube-controller-manager": {&api.Pod{}}, "kube-scheduler": {&api.Pod{}}, "podmaster": {&api.Pod{}}, }, - "../docs/admin/limitrange": { + "docs/admin/limitrange": { "invalid-pod": {&api.Pod{}}, "limits": {&api.LimitRange{}}, "namespace": {&api.Namespace{}}, "valid-pod": {&api.Pod{}}, }, - "../docs/admin/multiple-schedulers": { + "docs/admin/multiple-schedulers": { "my-scheduler": {&extensions.Deployment{}}, "pod1": {&api.Pod{}}, "pod2": {&api.Pod{}}, "pod3": {&api.Pod{}}, }, - "../docs/admin/resourcequota": { + "docs/admin/resourcequota": { "best-effort": {&api.ResourceQuota{}}, "compute-resources": {&api.ResourceQuota{}}, "limits": {&api.LimitRange{}}, @@ -294,7 +294,7 @@ func TestExampleObjectSchemas(t *testing.T) { "not-best-effort": {&api.ResourceQuota{}}, "object-counts": {&api.ResourceQuota{}}, }, - "../docs/concepts/cluster-administration": { + "docs/concepts/cluster-administration": { "counter-pod": {&api.Pod{}}, "fluentd-sidecar-config": {&api.ConfigMap{}}, "nginx-app": {&api.Service{}, &extensions.Deployment{}}, @@ -303,25 +303,25 @@ func TestExampleObjectSchemas(t *testing.T) { "two-files-counter-pod-agent-sidecar": {&api.Pod{}}, "two-files-counter-pod-streaming-sidecar": {&api.Pod{}}, }, - "../docs/concepts/cluster-administration/nginx": { + "docs/concepts/cluster-administration/nginx": { "nginx-deployment": {&extensions.Deployment{}}, "nginx-svc": {&api.Service{}}, }, - "../docs/concepts/configuration": { + "docs/concepts/configuration": { "commands": {&api.Pod{}}, "pod": {&api.Pod{}}, "pod-with-node-affinity": {&api.Pod{}}, "pod-with-pod-affinity": {&api.Pod{}}, }, - "../docs/concepts/overview/working-with-objects": { + "docs/concepts/overview/working-with-objects": { "nginx-deployment": {&extensions.Deployment{}}, }, - "../docs/concepts/policy": { + "docs/concepts/policy": { "privileged-psp": {&extensions.PodSecurityPolicy{}}, "restricted-psp": {&extensions.PodSecurityPolicy{}}, "example-psp": {&extensions.PodSecurityPolicy{}}, }, - "../docs/concepts/services-networking": { + "docs/concepts/services-networking": { "curlpod": {&extensions.Deployment{}}, "custom-dns": {&api.Pod{}}, "hostaliases-pod": {&api.Pod{}}, @@ -330,7 +330,7 @@ func TestExampleObjectSchemas(t *testing.T) { "nginx-svc": {&api.Service{}}, "run-my-nginx": {&extensions.Deployment{}}, }, - "../docs/concepts/workloads/controllers": { + "docs/concepts/workloads/controllers": { "cronjob": {&batch.CronJob{}}, "daemonset": {&extensions.DaemonSet{}}, "frontend": {&extensions.ReplicaSet{}}, @@ -340,14 +340,14 @@ func TestExampleObjectSchemas(t *testing.T) { "nginx-deployment": {&extensions.Deployment{}}, "replication": {&api.ReplicationController{}}, }, - "../docs/tasks/access-application-cluster": { + "docs/tasks/access-application-cluster": { "frontend": {&api.Service{}, &extensions.Deployment{}}, "hello-service": {&api.Service{}}, "hello": {&extensions.Deployment{}}, "redis-master": {&api.Pod{}}, "two-container-pod": {&api.Pod{}}, }, - "../docs/tasks/administer-cluster": { + "docs/tasks/administer-cluster": { "busybox": {&api.Pod{}}, "cloud-controller-manager-daemonset-example": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.DaemonSet{}}, "cpu-constraints": {&api.LimitRange{}}, @@ -386,7 +386,7 @@ func TestExampleObjectSchemas(t *testing.T) { "quota-pod-deployment": {&extensions.Deployment{}}, "quota-pvc-2": {&api.PersistentVolumeClaim{}}, }, - "../docs/tasks/configure-pod-container": { + "docs/tasks/configure-pod-container": { "cpu-request-limit": {&api.Pod{}}, "cpu-request-limit-2": {&api.Pod{}}, "exec-liveness": {&api.Pod{}}, @@ -420,19 +420,19 @@ func TestExampleObjectSchemas(t *testing.T) { "task-pv-volume": {&api.PersistentVolume{}}, "tcp-liveness-readiness": {&api.Pod{}}, }, - "../docs/tasks/debug-application-cluster": { + "docs/tasks/debug-application-cluster": { "counter-pod": {&api.Pod{}}, "event-exporter-deploy": {&api.ServiceAccount{}, &rbac.ClusterRoleBinding{}, &extensions.Deployment{}}, "fluentd-gcp-configmap": {&api.ConfigMap{}}, "fluentd-gcp-ds": {&extensions.DaemonSet{}}, "nginx-dep": {&extensions.Deployment{}}, - "shell-demo": {&api.Pod{}}, "node-problem-detector": {&extensions.DaemonSet{}}, "node-problem-detector-configmap": {&extensions.DaemonSet{}}, + "shell-demo": {&api.Pod{}}, "termination": {&api.Pod{}}, }, // TODO: decide whether federation examples should be added - "../docs/tasks/inject-data-application": { + "docs/tasks/inject-data-application": { "commands": {&api.Pod{}}, "dapi-envars-container": {&api.Pod{}}, "dapi-envars-pod": {&api.Pod{}}, @@ -455,18 +455,19 @@ func TestExampleObjectSchemas(t *testing.T) { "secret-envars-pod": {&api.Pod{}}, "secret-pod": {&api.Pod{}}, }, - "../docs/tasks/job": { + "docs/tasks/job": { + "cronjob": {&batch.CronJob{}}, + "job": {&batch.Job{}}, + }, + "docs/tasks/job/coarse-parallel-processing-work-queue": { "job": {&batch.Job{}}, }, - "../docs/tasks/job/coarse-parallel-processing-work-queue": { - "job": {&batch.Job{}}, - }, - "../docs/tasks/job/fine-parallel-processing-work-queue": { + "docs/tasks/job/fine-parallel-processing-work-queue": { "job": {&batch.Job{}}, "redis-pod": {&api.Pod{}}, "redis-service": {&api.Service{}}, }, - "../docs/tasks/run-application": { + "docs/tasks/run-application": { "deployment": {&extensions.Deployment{}}, "deployment-patch-demo": {&extensions.Deployment{}}, "deployment-scale": {&extensions.Deployment{}}, @@ -477,37 +478,37 @@ func TestExampleObjectSchemas(t *testing.T) { "mysql-services": {&api.Service{}, &api.Service{}}, "mysql-statefulset": {&apps.StatefulSet{}}, }, - "../docs/tutorials/clusters": { + "docs/tutorials/clusters": { "hello-apparmor-pod": {&api.Pod{}}, "my-scheduler": {&extensions.Deployment{}}, }, - "../docs/tutorials/configuration/configmap/redis": { + "docs/tutorials/configuration/configmap/redis": { "redis-pod": {&api.Pod{}}, }, - "../docs/concepts/overview/object-management-kubectl": { + "docs/concepts/overview/object-management-kubectl": { "simple_deployment": {&extensions.Deployment{}}, "update_deployment": {&extensions.Deployment{}}, }, - "../docs/tutorials/stateful-application": { + "docs/tutorials/stateful-application": { "web": {&api.Service{}, &apps.StatefulSet{}}, "webp": {&api.Service{}, &apps.StatefulSet{}}, "zookeeper": {&api.Service{}, &api.Service{}, &policy.PodDisruptionBudget{}, &apps.StatefulSet{}}, }, - "../docs/tutorials/stateful-application/cassandra": { + "docs/tutorials/stateful-application/cassandra": { "cassandra-service": {&api.Service{}}, "cassandra-statefulset": {&apps.StatefulSet{}, &storage.StorageClass{}}, }, - "../docs/tutorials/stateful-application/mysql-wordpress-persistent-volume": { + "docs/tutorials/stateful-application/mysql-wordpress-persistent-volume": { "local-volumes": {&api.PersistentVolume{}, &api.PersistentVolume{}}, "mysql-deployment": {&api.Service{}, &api.PersistentVolumeClaim{}, &extensions.Deployment{}}, "wordpress-deployment": {&api.Service{}, &api.PersistentVolumeClaim{}, &extensions.Deployment{}}, }, - "../docs/tutorials/stateless-application": { + "docs/tutorials/stateless-application": { "deployment": {&extensions.Deployment{}}, "deployment-scale": {&extensions.Deployment{}}, "deployment-update": {&extensions.Deployment{}}, }, - "../docs/tutorials/stateless-application/guestbook": { + "docs/tutorials/stateless-application/guestbook": { "frontend-deployment": {&extensions.Deployment{}}, "frontend-service": {&api.Service{}}, "redis-master-deployment": {&extensions.Deployment{}}, @@ -515,7 +516,7 @@ func TestExampleObjectSchemas(t *testing.T) { "redis-slave-deployment": {&extensions.Deployment{}}, "redis-slave-service": {&api.Service{}}, }, - "../docs/user-guide/walkthrough": { + "docs/user-guide/walkthrough": { "deployment": {&extensions.Deployment{}}, "deployment-update": {&extensions.Deployment{}}, "pod-nginx": {&api.Pod{}}, @@ -527,8 +528,9 @@ func TestExampleObjectSchemas(t *testing.T) { }, } + // Note a key in the following map has to be complete relative path filesIgnore := map[string]map[string]bool{ - "../docs/tasks/debug-application-cluster": { + "../content/en/docs/tasks/debug-application-cluster": { "audit-policy": true, }, } @@ -538,9 +540,11 @@ func TestExampleObjectSchemas(t *testing.T) { // PodShareProcessNamespace needed for example share-process-namespace.yaml utilfeature.DefaultFeatureGate.Set("PodShareProcessNamespace=true") - for path, expected := range cases { + rootpath := "../content/en/" + for dir, expected := range cases { tested := 0 numExpected := 0 + path := rootpath + dir err := walkConfigFiles(path, func(name, path string, docs [][]byte) { expectedTypes, found := expected[name] if !found { @@ -621,7 +625,7 @@ func TestReadme(t *testing.T) { file string expectedType []runtime.Object }{ - {"../docs/concepts/storage/volumes.md", []runtime.Object{&api.Pod{}}}, + {"../content/en/docs/concepts/storage/volumes.md", []runtime.Object{&api.Pod{}}}, } for _, path := range paths { diff --git a/test/glossary_test.go b/test/glossary_test.go index dc8984a295..da44806e5a 100644 --- a/test/glossary_test.go +++ b/test/glossary_test.go @@ -14,8 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. */ + package examples_test +/* + import ( "io/ioutil" "gopkg.in/yaml.v2" @@ -24,6 +27,7 @@ import ( "testing" ) + // Not unmarshaling short-description and long-description fields // (for simplicity) type GlossaryTerm struct { @@ -42,7 +46,7 @@ type CanonicalTag struct { // Checks that all glossary files (../_data/glossary/*) contain valid tags // that are present in the canonical set. func TestCanonicalTags(t *testing.T) { - canonicalTagsDir := "../_data/canonical-tags" + canonicalTagsDir := "../data/canonical-tags" files, err := ioutil.ReadDir(canonicalTagsDir) if err != nil { t.Errorf("Unable to read directory %s: %v", canonicalTagsDir, err) @@ -67,7 +71,7 @@ func TestCanonicalTags(t *testing.T) { canonicalTagsSet[tag.Id] = true } - glossaryDir := "../_data/glossary" + glossaryDir := "../data/glossary" files, err = ioutil.ReadDir(glossaryDir) if err != nil { t.Errorf("Unable to read directory %s: %v", glossaryDir, err) @@ -104,3 +108,4 @@ func TestCanonicalTags(t *testing.T) { } } } +*/