Skip to content

Commit 2eb6685

Browse files
authored
feat(set-labels): migrate to SDK v1.0.4 with WithDocs support (#1258)
- Add //go:embed for README.md and metadata.yaml - Pass fn.WithDocs(readme, metadata) to fn.AsMain for --help and --doc - Update fn.WithContext to use context.Context directly (API change) - Bump SDK dependency from v1.0.3 to v1.0.4 The function now supports: - --help: renders human-readable docs from README.md - --doc: renders machine-readable JSON for kpt fn doc - Standalone file mode (positional args) This is Phase 2 of the SDK migration plan for the 8 already-migrated functions. The orphaned generated/docs.go is left in place for now to avoid disrupting the shared mdtogo Makefile target. Signed-off-by: Fiachra Corcoran <fiachra.corcoran@est.tech>
1 parent 23787e0 commit 2eb6685

4 files changed

Lines changed: 18 additions & 8 deletions

File tree

functions/go/set-labels/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module github.com/kptdev/krm-functions-catalog/functions/go/set-labels
22

33
go 1.26.3
44

5-
require github.com/kptdev/krm-functions-sdk/go/fn v1.0.3
5+
require github.com/kptdev/krm-functions-sdk/go/fn v1.0.4
66

77
require (
88
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect

functions/go/set-labels/go.sum

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ github.com/google/gnostic-models v0.7.1 h1:SisTfuFKJSKM5CPZkffwi6coztzzeYUhc3v4y
4343
github.com/google/gnostic-models v0.7.1/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ=
4444
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
4545
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
46-
github.com/kptdev/krm-functions-sdk/go/fn v1.0.3 h1:Gmkqbc2cbwJxamVoRSs409TZinuNGZaMYmNmlQcF6Bs=
47-
github.com/kptdev/krm-functions-sdk/go/fn v1.0.3/go.mod h1:+MgNIVQMGs6WcNhQZYIbgFINnmskX8VMYcUvJBtE01M=
46+
github.com/kptdev/krm-functions-sdk/go/fn v1.0.4 h1:2Cl68JgaNva8eZ/YzqiZNOXkjIhavqLsoGOnxYN13Oc=
47+
github.com/kptdev/krm-functions-sdk/go/fn v1.0.4/go.mod h1:NqMHvghKasESpZImCDIOp5r10g3vmOeCcHzvjyL+4vk=
4848
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0=
4949
github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4=
5050
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -79,6 +79,8 @@ k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc=
7979
k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0=
8080
k8s.io/kube-openapi v0.0.0-20260520065146-aa012df4f4af h1:zLXA2Irn14q2/06WMkxViyr7YCPUO2lJ0QYE9Juy5vA=
8181
k8s.io/kube-openapi v0.0.0-20260520065146-aa012df4f4af/go.mod h1:V/QaCUYDa+0QpcHhVVc5l99Uz56wEMEXBSj9oCDkNDY=
82+
pgregory.net/rapid v1.3.0 h1:vBvO0VSqti75J1jjYqpgPNBLKMd1+gxa9fYo7vk/Exc=
83+
pgregory.net/rapid v1.3.0/go.mod h1:dPlE4OBBxgXPqkP79flB6sJL1dx5azpI7HQ9MY9Z7uk=
8284
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
8385
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
8486
sigs.k8s.io/kustomize/kyaml v0.21.1 h1:IVlbmhC076nf6foyL6Taw4BkrLuEsXUXNpsE+ScX7fI=

functions/go/set-labels/run.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 The kpt Authors
1+
// Copyright 2022-2026 The kpt Authors
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -18,15 +18,22 @@ package main
1818

1919
import (
2020
"context"
21+
_ "embed"
2122

2223
"github.com/kptdev/krm-functions-catalog/functions/go/set-labels/setlabels"
2324
"github.com/kptdev/krm-functions-sdk/go/fn"
2425
)
2526

27+
//go:embed README.md
28+
var readme []byte
29+
30+
//go:embed metadata.yaml
31+
var metadata []byte
32+
2633
func NewTransformer() fn.ResourceListProcessor {
27-
return fn.WithContext(fn.Context{Context: context.Background()}, &setlabels.SetLabels{})
34+
return fn.WithContext(context.Background(), &setlabels.SetLabels{})
2835
}
2936

3037
func run() error {
31-
return fn.AsMain(NewTransformer())
38+
return fn.AsMain(NewTransformer(), fn.WithDocs(readme, metadata))
3239
}

functions/go/set-labels/run_js.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2022 The kpt Authors
1+
// Copyright 2022-2026 The kpt Authors
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
1717
package main
1818

1919
import (
20+
"context"
2021
"syscall/js"
2122

2223
"github.com/kptdev/krm-functions-catalog/functions/go/set-labels/setlabels"
@@ -37,7 +38,7 @@ func run() error {
3738
}
3839

3940
func transformLabels(input []byte) ([]byte, error) {
40-
runner := fn.WithContext(fn.Context{Context: nil}, &setlabels.SetLabels{})
41+
runner := fn.WithContext(context.Background(), &setlabels.SetLabels{})
4142
return fn.Run(runner, []byte(input))
4243
}
4344

0 commit comments

Comments
 (0)