diff --git a/cmd/mungedocs/mungedocs.go b/cmd/mungedocs/mungedocs.go
index b82d1d22f23..0c1fe218912 100644
--- a/cmd/mungedocs/mungedocs.go
+++ b/cmd/mungedocs/mungedocs.go
@@ -40,6 +40,7 @@ var (
allMunges = []munge{
{"table-of-contents", updateTOC},
{"check-links", checkLinks},
+ {"unversioned-warning", updateUnversionedWarning},
}
)
diff --git a/cmd/mungedocs/unversioned_warning.go b/cmd/mungedocs/unversioned_warning.go
new file mode 100644
index 00000000000..8939fce4532
--- /dev/null
+++ b/cmd/mungedocs/unversioned_warning.go
@@ -0,0 +1,45 @@
+/*
+Copyright 2015 The Kubernetes Authors All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+var beginUnversionedWarning = ""
+var endUnversionedWarning = ""
+var unversionedWarning = `
+
+
+
*** PLEASE NOTE: This document applies to the HEAD of the source
+tree only. If you are using a released version of Kubernetes, you almost
+certainly want the docs that go with that version.
+
+Documentation for specific releases can be found at
+[releases.k8s.io](http://releases.k8s.io).
+
+
+`
+
+// inserts/updates a warning for unversioned docs
+func updateUnversionedWarning(file string, markdown []byte) ([]byte, error) {
+ lines := splitLines(markdown)
+ if hasLine(lines, "") {
+ // No warnings on release branches
+ return markdown, nil
+ }
+ if !hasMacroBlock(lines, beginUnversionedWarning, endUnversionedWarning) {
+ lines = append([]string{beginUnversionedWarning, endUnversionedWarning}, lines...)
+ }
+ return updateMacroBlock(lines, beginUnversionedWarning, endUnversionedWarning, unversionedWarning)
+}
diff --git a/cmd/mungedocs/unversioned_warning_test.go b/cmd/mungedocs/unversioned_warning_test.go
new file mode 100644
index 00000000000..f9431905386
--- /dev/null
+++ b/cmd/mungedocs/unversioned_warning_test.go
@@ -0,0 +1,64 @@
+/*
+Copyright 2015 The Kubernetes Authors All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package main
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestUnversionedWarning(t *testing.T) {
+ warningBlock := beginUnversionedWarning + "\n" + unversionedWarning + "\n" + endUnversionedWarning + "\n"
+ var cases = []struct {
+ in string
+ out string
+ }{
+ {"", warningBlock},
+ {
+ "Foo\nBar\n",
+ warningBlock + "Foo\nBar\n",
+ },
+ {
+ "Foo\n\nBar",
+ "Foo\n\nBar",
+ },
+ {
+ beginUnversionedWarning + "\n" + endUnversionedWarning + "\n",
+ warningBlock,
+ },
+ {
+ beginUnversionedWarning + "\n" + "something\n" + endUnversionedWarning + "\n",
+ warningBlock,
+ },
+ {
+ "Foo\n" + beginUnversionedWarning + "\n" + endUnversionedWarning + "\nBar\n",
+ "Foo\n" + warningBlock + "Bar\n",
+ },
+ {
+ "Foo\n" + warningBlock + "Bar\n",
+ "Foo\n" + warningBlock + "Bar\n",
+ },
+ }
+ for i, c := range cases {
+ actual, err := updateUnversionedWarning("filename.md", []byte(c.in))
+ assert.NoError(t, err)
+ if string(actual) != c.out {
+ t.Errorf("case[%d]: expected %q got %q", i, c.out, string(actual))
+ }
+ }
+}