rename config.k8s.io/function to config.kubernetes.io/function

This commit is contained in:
Phillip Wittrock
2020-01-07 11:11:59 -08:00
parent 2437e1ffe7
commit 0cae0feb9b
14 changed files with 33 additions and 23 deletions

View File

@@ -22,7 +22,7 @@ order they appear in the file).
#### Config Functions:
Config functions are specified as Kubernetes types containing a metadata.annotations.[config.k8s.io/function]
Config functions are specified as Kubernetes types containing a metadata.annotations.[config.kubernetes.io/function]
field specifying an image for the container to run. This image tells run how to invoke the container.
Example config function:
@@ -32,7 +32,7 @@ order they appear in the file).
kind: ExampleFunctionKind
metadata:
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
# function is invoked as a container running this image
image: gcr.io/example/examplefunction:v1.0.1
@@ -41,7 +41,7 @@ order they appear in the file).
configField: configValue
In the preceding example, 'kustomize config run example/' would identify the function by
the metadata.annotations.[config.k8s.io/function] field. It would then write all Resources in the directory to
the metadata.annotations.[config.kubernetes.io/function] field. It would then write all Resources in the directory to
a container stdin (running the gcr.io/example/examplefunction:v1.0.1 image). It
would then write the container stdout back to example/, replacing the directory
file contents.

View File

@@ -220,7 +220,7 @@ order they appear in the file).
#### Config Functions:
Config functions are specified as Kubernetes types containing a metadata.annotations.[config.k8s.io/function]
Config functions are specified as Kubernetes types containing a metadata.annotations.[config.kubernetes.io/function]
field specifying an image for the container to run. This image tells run how to invoke the container.
Example config function:
@@ -230,7 +230,7 @@ order they appear in the file).
kind: ExampleFunctionKind
metadata:
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
# function is invoked as a container running this image
image: gcr.io/example/examplefunction:v1.0.1
@@ -239,7 +239,7 @@ order they appear in the file).
configField: configValue
In the preceding example, 'kustomize config run example/' would identify the function by
the metadata.annotations.[config.k8s.io/function] field. It would then write all Resources in the directory to
the metadata.annotations.[config.kubernetes.io/function] field. It would then write all Resources in the directory to
a container stdin (running the gcr.io/example/examplefunction:v1.0.1 image). It
would then write the container stdout back to example/, replacing the directory
file contents.

View File

@@ -15,7 +15,7 @@ Resource configuration, and looks for invalid configuration.
## Function invocation
The function is invoked by authoring a [local Resource](local-resource)
with `metadata.annotations.[config.k8s.io/function]` and running:
with `metadata.annotations.[config.kubernetes.io/function]` and running:
kustomize config run local-resource/

View File

@@ -5,7 +5,7 @@ apiVersion: examples.config.kubernetes.io/v1beta1
kind: Validator
metadata:
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
image: gcr.io/kustomize-functions/example-tshirt:v0.1.0
---

View File

@@ -25,7 +25,7 @@ function input, and writing the function output.
## Function invocation
The function is invoked by authoring a [local Resource](local-resource)
with `metadata.annotations.[config.k8s.io/function]` and running:
with `metadata.annotations.[config.kubernetes.io/function]` and running:
kustomize config run local-resource/

View File

@@ -6,7 +6,7 @@ kind: Nginx
metadata:
name: demo
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
image: gcr.io/kustomize-functions/example-nginx:v0.1.0
spec:

View File

@@ -20,7 +20,7 @@ heavy lifting of implementing the function interface.
## Function invocation
The function is invoked by authoring a [local Resource](local-resource)
with `metadata.annotations.[config.k8s.io/function]` and running:
with `metadata.annotations.[config.kubernetes.io/function]` and running:
kustomize config run local-resource/

View File

@@ -7,7 +7,7 @@ kind: CockroachDB
metadata:
name: demo
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
image: gcr.io/kustomize-functions/example-cockroachdb:v0.1.0
spec:

View File

@@ -18,7 +18,7 @@ the `API` struct definition in [main.go](image/main.go) for documentation.
## Function invocation
The function is invoked by authoring a [local Resource](local-resource)
with `metadata.annotations.[config.k8s.io/function]` and running:
with `metadata.annotations.[config.kubernetes.io/function]` and running:
kustomize config run local-resource/

View File

@@ -5,7 +5,7 @@ apiVersion: examples.config.kubernetes.io/v1beta1
kind: Kubeval
metadata:
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
image: gcr.io/kustomize-functions/example-validator-kubeval:v0.1.0
spec:

View File

@@ -15,7 +15,7 @@ Resource configuration, and looks for invalid configuration.
## Function invocation
The function is invoked by authoring a [local Resource](local-resource)
with `metadata.annotations.[config.k8s.io/function]` and running:
with `metadata.annotations.[config.kubernetes.io/function]` and running:
kustomize config run local-resource/

View File

@@ -5,7 +5,7 @@ apiVersion: examples.config.kubernetes.io/v1beta1
kind: Validator
metadata:
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
image: gcr.io/kustomize-functions/example-validator:v0.1.0
---

View File

@@ -194,6 +194,13 @@ func (c *IsReconcilerFilter) Filter(inputs []*yaml.RNode) ([]*yaml.RNode, error)
return out, nil
}
const (
FunctionAnnotationKey = "config.kubernetes.io/function"
oldFunctionAnnotationKey = "config.k8s.io/function"
)
var functionAnnotationKeys = []string{FunctionAnnotationKey, oldFunctionAnnotationKey}
// GetContainerName returns the container image for an API if one exists
func GetContainerName(n *yaml.RNode) (string, string) {
meta, _ := n.GetMeta()
@@ -201,11 +208,14 @@ func GetContainerName(n *yaml.RNode) (string, string) {
// path to the function, this will be mounted into the container
path := meta.Annotations[kioutil.PathAnnotation]
functionAnnotation := meta.Annotations["config.k8s.io/function"]
if functionAnnotation != "" {
annotationContent, _ := yaml.Parse(functionAnnotation)
image, _ := annotationContent.Pipe(yaml.Lookup("container", "image"))
return image.YNode().Value, path
// check previous keys for backwards compatibility
for _, s := range functionAnnotationKeys {
functionAnnotation := meta.Annotations[s]
if functionAnnotation != "" {
annotationContent, _ := yaml.Parse(functionAnnotation)
image, _ := annotationContent.Pipe(yaml.Lookup("container", "image"))
return image.YNode().Value, path
}
}
container := meta.Annotations["config.kubernetes.io/container"]

View File

@@ -333,12 +333,12 @@ metadata:
c, _ = GetContainerName(n)
assert.Equal(t, "gcr.io/foo/bar:something", c)
// container from config.k8s.io/function annotation
// container from config.kubernetes.io/function annotation
n, err = yaml.Parse(`apiVersion: v1
kind: MyThing
metadata:
annotations:
config.k8s.io/function: |
config.kubernetes.io/function: |
container:
image: gcr.io/foo/bar:something
`)