Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a4823d8

Browse files
committedApr 3, 2025··
🌱 (chore): wrap and contextualize errors across Grafana plugin
1 parent fa1d379 commit a4823d8

File tree

5 files changed

+31
-11
lines changed

5 files changed

+31
-11
lines changed
 

‎pkg/plugins/optional/grafana/v1alpha/commons.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package v1alpha
1818

1919
import (
2020
"errors"
21+
"fmt"
2122

2223
"sigs.k8s.io/kubebuilder/v4/pkg/config"
2324
)
@@ -27,11 +28,11 @@ func InsertPluginMetaToConfig(target config.Config, cfg pluginConfig) error {
2728
err := target.DecodePluginConfig(pluginKey, cfg)
2829
if !errors.As(err, &config.UnsupportedFieldError{}) {
2930
if err != nil && !errors.As(err, &config.PluginKeyNotFoundError{}) {
30-
return err
31+
return fmt.Errorf("error decoding plugin configuration: %w", err)
3132
}
3233

3334
if err = target.EncodePluginConfig(pluginKey, cfg); err != nil {
34-
return err
35+
return fmt.Errorf("error encoding plugin configuration: %w", err)
3536
}
3637
}
3738

‎pkg/plugins/optional/grafana/v1alpha/edit.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,14 @@ func (p *editSubcommand) InjectConfig(c config.Config) error {
4646

4747
func (p *editSubcommand) Scaffold(fs machinery.Filesystem) error {
4848
if err := InsertPluginMetaToConfig(p.config, pluginConfig{}); err != nil {
49-
return err
49+
return fmt.Errorf("error inserting project plugin meta to configuration: %w", err)
5050
}
5151

5252
scaffolder := scaffolds.NewEditScaffolder()
5353
scaffolder.InjectFS(fs)
54-
return scaffolder.Scaffold()
54+
if err := scaffolder.Scaffold(); err != nil {
55+
return fmt.Errorf("error scaffolding edit subcommand: %w", err)
56+
}
57+
58+
return nil
5559
}

‎pkg/plugins/optional/grafana/v1alpha/init.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,14 @@ func (p *initSubcommand) InjectConfig(c config.Config) error {
4646

4747
func (p *initSubcommand) Scaffold(fs machinery.Filesystem) error {
4848
if err := InsertPluginMetaToConfig(p.config, pluginConfig{}); err != nil {
49-
return err
49+
return fmt.Errorf("error inserting project plugin meta to configuration: %w", err)
5050
}
5151

5252
scaffolder := scaffolds.NewInitScaffolder()
5353
scaffolder.InjectFS(fs)
54-
return scaffolder.Scaffold()
54+
if err := scaffolder.Scaffold(); err != nil {
55+
return fmt.Errorf("error scaffolding init subcommand: %w", err)
56+
}
57+
58+
return nil
5559
}

‎pkg/plugins/optional/grafana/v1alpha/scaffolds/edit.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -77,20 +77,20 @@ func loadConfig(configPath string) ([]templates.CustomMetricItem, error) {
7777
return nil, fmt.Errorf("could not close config.yaml: %w", err)
7878
}
7979

80-
return items, err
80+
return items, nil
8181
}
8282

8383
func configReader(reader io.Reader) ([]templates.CustomMetricItem, error) {
8484
yamlFile, err := io.ReadAll(reader)
8585
if err != nil {
86-
return nil, err
86+
return nil, fmt.Errorf("error reading config.yaml: %w", err)
8787
}
8888

8989
config := templates.CustomMetricsConfig{}
9090

9191
err = yaml.Unmarshal(yamlFile, &config)
9292
if err != nil {
93-
return nil, err
93+
return nil, fmt.Errorf("error parsing config.yaml: %w", err)
9494
}
9595

9696
validatedMetricItems := validateCustomMetricItems(config.CustomMetrics)
@@ -185,5 +185,9 @@ func (s *editScaffolder) Scaffold() error {
185185
_, _ = fmt.Fprintf(os.Stderr, "Error on scaffolding manifest for custom metris:\n%v", err)
186186
}
187187

188-
return scaffold.Execute(templatesBuilder...)
188+
if err = scaffold.Execute(templatesBuilder...); err != nil {
189+
return fmt.Errorf("error scaffolding Grafana manifests: %w", err)
190+
}
191+
192+
return nil
189193
}

‎pkg/plugins/optional/grafana/v1alpha/scaffolds/init.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ limitations under the License.
1717
package scaffolds
1818

1919
import (
20+
"fmt"
21+
2022
log "github.com/sirupsen/logrus"
2123

2224
"sigs.k8s.io/kubebuilder/v4/pkg/machinery"
@@ -48,9 +50,14 @@ func (s *initScaffolder) Scaffold() error {
4850
// Initialize the machinery.Scaffold that will write the files to disk
4951
scaffold := machinery.NewScaffold(s.fs)
5052

51-
return scaffold.Execute(
53+
err := scaffold.Execute(
5254
&templates.RuntimeManifest{},
5355
&templates.ResourcesManifest{},
5456
&templates.CustomMetricsConfigManifest{ConfigPath: configFilePath},
5557
)
58+
if err != nil {
59+
return fmt.Errorf("error scaffolding Grafana memanifests: %w", err)
60+
}
61+
62+
return nil
5663
}

0 commit comments

Comments
 (0)
Please sign in to comment.