File tree Expand file tree Collapse file tree 17 files changed +1139
-0
lines changed
examples/set-default-labels-nested-package Expand file tree Collapse file tree 17 files changed +1139
-0
lines changed Original file line number Diff line number Diff line change
1
+ diff --git a/app1_ghost/resources.yaml b/app1_ghost/resources.yaml
2
+ index 2e6dcbd..935a47b 100644
3
+ --- a/app1_ghost/resources.yaml
4
+ +++ b/app1_ghost/resources.yaml
5
+ @@ -2,6 +2,8 @@ apiVersion: apps/v1
6
+ kind: Deployment
7
+ metadata:
8
+ name: ghost
9
+ + labels:
10
+ + app.kubernetes.io/name: root-app
11
+ spec:
12
+ replicas: 2
13
+ template:
14
+ @@ -14,4 +16,10 @@ spec:
15
+ - containerPort: 2368
16
+ env:
17
+ - name: url
18
+ - value: http://my-blog.com
19
+ \ No newline at end of file
20
+ + value: http://my-blog.com
21
+ + metadata:
22
+ + labels:
23
+ + app.kubernetes.io/name: root-app
24
+ + selector:
25
+ + matchLabels:
26
+ + app.kubernetes.io/name: root-app
27
+ diff --git a/app2_mysql/resources.yaml b/app2_mysql/resources.yaml
28
+ index 88d0df7..be45a8d 100644
29
+ --- a/app2_mysql/resources.yaml
30
+ +++ b/app2_mysql/resources.yaml
31
+ @@ -2,6 +2,8 @@ apiVersion: apps/v1
32
+ kind: Deployment
33
+ metadata:
34
+ name: mysql
35
+ + labels:
36
+ + app.kubernetes.io/name: root-app
37
+ spec:
38
+ template:
39
+ spec:
40
+ @@ -11,5 +13,11 @@ spec:
41
+ ports:
42
+ - name: mysql
43
+ containerPort: 3306
44
+ + metadata:
45
+ + labels:
46
+ + app.kubernetes.io/name: root-app
47
+ strategy:
48
+ type: Recreate
49
+ + selector:
50
+ + matchLabels:
51
+ + app.kubernetes.io/name: root-app
Original file line number Diff line number Diff line change
1
+ .expected
Original file line number Diff line number Diff line change
1
+ apiVersion: kpt.dev/v1
2
+ kind: Kptfile
3
+ metadata:
4
+ name: root-app
5
+ annotations:
6
+ config.kubernetes.io/local-config: "true"
7
+ pipeline:
8
+ mutators:
9
+ - image: gcr.io/kpt-fn/set-default-labels:unstable
Original file line number Diff line number Diff line change
1
+ # set-default-labels: Nested Package Example
2
+
3
+ ### Overview
4
+
5
+ This example shows how to run [ ` set-default-labels ` ] in a nested KPT package.
6
+
7
+ ### Fetch the example package
8
+
9
+ Get the example package by running the following commands:
10
+
11
+ ``` shell
12
+ $ kpt pkg get https://github.com/GoogleContainerTools/kpt-functions-catalog.git/examples/set-default-labels-nested-package root-app
13
+ ```
14
+
15
+ Take a look at the ` Kptfile ` , it has the ` set-default-labels ` configured. Note: you do not need to specify the function config via ` configPath ` or ` configMap ` .
16
+
17
+ ``` yaml
18
+ apiVersion : kpt.dev/v1
19
+ kind : Kptfile
20
+ metadata :
21
+ name : your-app
22
+ pipeline :
23
+ mutators :
24
+ - image : gcr.io/kpt-fn/set-default-labels:unstable
25
+ ` ` `
26
+
27
+ ### Function invocation
28
+
29
+ Invoke the function:
30
+
31
+ ` ` ` shell
32
+ $ kpt fn render root-app
33
+ ```
34
+
35
+ ### Expected result
36
+ A [ recommended label] ` app.kubernetes.io/name: root-app ` using the root package name is added to all the resources ` labels ` and ` matchLabels ` fields.
37
+
38
+ [ `set-default-labels` ] : https://catalog.kpt.dev/set-default-labels/v0.1/
39
+ [ recommended label ] : https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/
Original file line number Diff line number Diff line change
1
+ apiVersion: kpt.dev/v1
2
+ kind: Kptfile
3
+ metadata:
4
+ name: app1_ghost
5
+ annotations:
6
+ config.kubernetes.io/local-config: "true"
7
+ info:
8
+ description: sample description
Original file line number Diff line number Diff line change
1
+ apiVersion : apps/v1
2
+ kind : Deployment
3
+ metadata :
4
+ name : ghost
5
+ spec :
6
+ replicas : 2
7
+ template :
8
+ spec :
9
+ containers :
10
+ - name : blog
11
+ image : ghost:2.6-alpine
12
+ imagePullPolicy : Always
13
+ ports :
14
+ - containerPort : 2368
15
+ env :
16
+ - name : url
17
+ value : http://my-blog.com
Original file line number Diff line number Diff line change
1
+ apiVersion: kpt.dev/v1
2
+ kind: Kptfile
3
+ metadata:
4
+ name: app2_mysql
5
+ annotations:
6
+ config.kubernetes.io/local-config: "true"
7
+ info:
8
+ description: sample description
Original file line number Diff line number Diff line change
1
+ apiVersion : apps/v1
2
+ kind : Deployment
3
+ metadata :
4
+ name : mysql
5
+ spec :
6
+ template :
7
+ spec :
8
+ containers :
9
+ - name : mysql
10
+ image : mysql:5.7
11
+ ports :
12
+ - name : mysql
13
+ containerPort : 3306
14
+ strategy :
15
+ type : Recreate
Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ FUNCTIONS := \
37
37
set-enforcement-action \
38
38
set-image \
39
39
set-labels \
40
+ set-default-labels \
40
41
set-namespace \
41
42
set-project-id \
42
43
source-gcloud-config \
Original file line number Diff line number Diff line change
1
+ # set-default-labels
2
+
3
+ ## Overview
4
+
5
+ <!-- mdtogo:Short-->
6
+
7
+ The ` set-default-labels ` function applies KPT label convention to your KPT package.
8
+
9
+
10
+ ### ` app.kubernetes.io/name `
11
+
12
+ Running the function can add this label using the value from the root ` Kptfile ` name.
13
+
14
+ This convention believes that all KRM resources under the same kpt package should be served for a specific application.
15
+ An application (or KPT package) can be composed by other applications (nested sub KPT packages).
16
+ So the function can accept multiple Kptfile and use the root Kptfile to set the app name.
17
+
18
+ <!-- mdtogo-->
19
+
20
+ You can learn more about recommended labels [ here] [ recommended labels ] .
21
+
22
+ <!-- mdtogo:Long-->
23
+
24
+ ## Usage
25
+
26
+ This function should be run in a KPT package. It does not require function config.
27
+
28
+ ### Run the function once
29
+ ``` shell
30
+ $ kpt fn eval --image set-default-labels:unstable
31
+ ```
32
+
33
+ ### Run the function in a Kpt pipeline
34
+
35
+ ``` shell
36
+ # add the function to Kptfile
37
+ $ kpt fn eval -t mutator -s -i set-default-labels:unstable
38
+ ```
39
+
40
+ ``` shell
41
+ # check Kptfile
42
+ $ cat Kptfile
43
+
44
+ apiVersion: kpt.dev/v1
45
+ kind: Kptfile
46
+ metadata:
47
+ name: set-default-label-example
48
+ annotations:
49
+ config.kubernetes.io/local-config: " true"
50
+ pipeline:
51
+ mutators:
52
+ - image: gcr.io/kpt-fn/set-default-labels:unstable
53
+ ```
54
+
55
+ ``` shell
56
+ # run the function in a CI pipeline
57
+ $ kpt fn render
58
+ ```
59
+ <!-- mdtogo-->
60
+
61
+
62
+ [ recommended labels ] : https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/
You can’t perform that action at this time.
0 commit comments