Skip to content

Releases: grafana/grafana-app-sdk

v0.32.0

07 Feb 14:11
7fa2192
Compare
Choose a tag to compare

Changelog

  • 0b3787b Add --noschemasinmanifest flag to CLI generate command (#623)
  • c70a87b Added InformerSupplier function to simple.AppInformerConfig (#612)
  • 93677a1 Bump github.com/grafana/grafana-app-sdk/logging from 0.31.0 to 0.31.1 in the all group (#622)
  • 098ccdb Bump grafana/cog to v0.0.21 (#624)
  • 5aaf71a Bump grafana/cog to v0.0.22 (#627)
  • f7de428 Bump the all group across 1 directory with 2 updates (#631)
  • 0605927 Bump the all group in /plugin with 2 updates (#621)
  • 7fa2192 Format kind JSON the same way the manifest is formatted. (#486)
  • 1b12140 [OpinionatedWatcher] Address bug where deletes on add-in-progress or add-retry resources aren't propagated (#630)
  • 1adacf4 [codegen] Change codegen CUE block to be language-specific and use config (#625)
  • a59bea2 [docs] Update the 'Managing Multiple Versions' doc to use app/runner (and simple.App) (#618)

v0.31.1

31 Jan 14:22
767741b
Compare
Choose a tag to compare

Changelog

  • a1298bb Bump github.com/getkin/kin-openapi from 0.128.0 to 0.129.0 in the all group (#616)
  • 505c400 Bump the all group in /plugin with 2 updates (#609)
  • 1d0c6a2 Bump the all group with 3 updates (#610)
  • dfd6d47 Replace the outdated 'Writing an Operator' doc with two new docs (#614)
  • b49b2b9 Small fixes for the Issue Tracker tutorial (#619)
  • dde03c4 Update APIVersion in AppManifest Jenny to Match AppManifest CRD Definition (#613)
  • 767741b [docs] Update Tutorial plugin links (#620)

v0.31.0

24 Jan 15:00
bd9737d
Compare
Choose a tag to compare

Changelog

  • 1079593 Add migration doc for v0.30.0 (#589)
  • ac58184 Added resource.WrappedObject for creating a resource.Object-implmenting type from a non-spec-based type (#605)
  • bd9737d Bump github.com/grafana/cog from 0.0.17 to 0.0.18 in the all group (#606)
  • 4ccdbcb Bump github.com/grafana/grafana-plugin-sdk-go from 0.262.0 to 0.263.0 in /plugin in the all group (#597)
  • fe89fdc Bump the all group across 1 directory with 3 updates (#594)
  • 565a872 Bump the all group across 1 directory with 6 updates (#593)
  • 3bd746e Bump the all group across 1 directory with 6 updates (#603)
  • 8ce8607 Fix codegen omitting Go manifest file with defencoding=none (#596)
  • e2c23ba Make the behavior of TypedStore.Update match the described behavior in the godoc (#595)
  • 88667a6 Remove grafana/cloud-app-platform-squad from CODEOWNERS (#601)
  • 646a2e4 [k8s] Allow specifying a KubeConfigProvider in k8s.ClientConfig (#608)
  • 9c5322c [operator] Call ErrorHandler on reconciler errors (#607)

v0.24.5

24 Jan 14:51
3e3f9db
Compare
Choose a tag to compare

Changelog

  • db75bf2 Bump github.com/grafana/grafana-plugin-sdk-go from 0.260.3 to 0.261.0 in /plugin in the all group (#572)
  • 854662b Bump golang.org/x/tools from 0.28.0 to 0.29.0 in the all group (#566)
  • 9631b9f Bump google.golang.org/grpc from 1.69.0 to 1.69.2 in the all group (#557)
  • 35a79a2 Bump google.golang.org/grpc from 1.69.2 to 1.69.4 in the all group (#582)
  • 12f6a3e Bump the all group across 1 directory with 3 updates (#592)
  • 620ee9a Bump the all group in /plugin with 3 updates (#552)
  • 85aaab9 Bump the all group in /plugin with 3 updates (#598)
  • e6c20b2 Bump the all group with 4 updates (#590)
  • 4104c9f Bump the all group with 5 updates (#600)
  • 9d67291 Bump the all group with 6 updates (#551)
  • 3e3f9db Make the behavior of TypedStore.Update match the described behavior in the godoc (#604)
  • e9754ce [ci] Add LTS branch to dependabot workflow
  • 946dc57 [ci] Add dependabot go workspace workflow
  • fffa6c8 [ci] Add id-token: write to dependabot workflow
  • 8285a16 [ci] Prevent forks from running go workspace update action (#562)
  • aeacad8 [ci] Switch to github actions bot in dependabot workflow

v0.30.0

16 Jan 14:40
c7c2e09
Compare
Choose a tag to compare

What Changed

CLI Changes

CLI flags have been updated, some have been renamed, and other deprecated ones have been removed:

  • --selectors|-s has been removed, and partially replaced by the --manifest flag. --manifest allows you to specify a selector for the app manifest, but does not allow for multiple selectors like --selectors did. This change was made as we no longer source kinds, but a manifest, and there should be one manifest per app.
  • --cuepath|-c has been renamed to --source|-s, to better reflect the future goal of having different source formats vi the --format flag.
  • --crdencoding has been renamed to --defencoding, as it now encodes both CRDs and app manifests
  • --crdpath has been renamed to --defpath, as it dictates the location of more than just CRDs now (also app manifest)
  • --kindgrouping has been renamed to --grouping to simplify

Changes to Generated Code

The /resource component of the generated code when grouping by kinds has been removed. To preserve this behavior in an existing project where you don't want the path to change, use -g=pkg/generated/resource (instead of the default pkg/generated).

interface{} is now used instead of any to avoid a bug with --postprocess.

Breaking API Changes

resource.Client.Delete and resource.SchemalessClient.Delete now have an extra argument of resource.DeleteOptions, to allow for advanced delete options (such as preconditions). This object can be empty to preserve current behavior (just use resource.DeleteOptions{} as the final argument to Delete).

Changelog

  • 8a376e6 Add tagging the logging submodule release to the release script (#577)
  • 02efca6 Bump github.com/grafana/cog from 0.0.10 to 0.0.12 in the all group (#578)
  • 3b31375 Bump github.com/grafana/grafana-app-sdk from 0.28.0 to 0.29.0 in /plugin in the all group (#579)
  • c7c2e09 Update cog and use AnyAsInterface to prefer interface{} usage over any (#588)
  • 2b52470 Use the group from the manifest for --grouping=group package names (#585)
  • d81f68c [CLI] Update/Remove/Rename CLI flags (#573)
  • a6dee2b [Client] Add options to Client.Delete and SchemalessClient.Delete (#580)

v0.29.0

10 Jan 14:42
3100353
Compare
Choose a tag to compare

What Changed

  • The logging package has been changed to a submodule, with the same release versions going forward as the main and plugin modules. This allows for using the app-sdk logger without needing to import any other parts of the app-sdk.
  • Debug logging & tracing for the OpinionatedReconciler, and several logic fixed to avoid retry loops on deletes (details)
  • Generated code now contains a constants.go file per kind package, with Group, Version, and GroupVersion as exported constants for convenience
  • simple.Operator has been deprecated and will be removed in a future release. Use simple.App and operator.Runner to achieve the same behavior.

Changelog

Full Changelog

  • 3100353 Use the published logging module v0.29.0 (#576)

v0.28.0

13 Dec 14:24
1cde3c9
Compare
Choose a tag to compare

What Changed

This version includes a CUE upgrade, which adds some additional requirements to your cue.mod/module.cue file.
Your CUE module is now required to be domain-qualified, so a module like foo/kinds must be changed to github.com/example/foo/kinds or foo.grafana.app/kinds (or similar).
By default, new projects created with grafana-app-sdk project init without a domain in their go module will use <module name>.grafana.app as their domain.
Additionally, the cue.mod/module.cue file must contain a language: version section, specifying the CUE language version to use when parsing. New projects will now use language: version: "v0.8.2" by default.

Operator New Methods

Some New functions in the operator package have been simplified to single NewX functions with options objects.
If you use simple.App or simple.Operator, you shouldn't need to make any changes, but if you are building a custom operator, this will apply to you.

  • NewKubernetesBasedInformer and NewKubernetesBasedInformerWithFilters have been reduced to just NewKubernetesBasedInformer(resource.Kind, ListWatchClient, KubernetesBasedInformerOptions)
  • NewMemcachedInformer and NewMemcachedInformerWithFilters have been reduced to just NewMemcachedInformer(resource.Kind, ListWatchClient, MemcachedInformerOptions)

Changelog

  • 02062c6 Added migration doc for v0.27.0 (#529)
  • 5f035d3 Bump github.com/grafana/cog from 0.0.5 to 0.0.6 in the all group (#519)
  • 40e53b1 Bump github.com/grafana/cog from 0.0.6 to 0.0.7 in the all group (#536)
  • e328920 Bump github.com/grafana/grafana-app-sdk from 0.25.2 to 0.27.0 in /plugin in the all group across 1 directory (#530)
  • a5ddfc5 Bump golang.org/x/sync from 0.9.0 to 0.10.0 in the all group (#533)
  • 48cec8f Bump google.golang.org/grpc from 1.68.0 to 1.68.1 in the all group across 1 directory (#531)
  • 6162a7b Bump the all group in /plugin with 2 updates (#547)
  • a87f4d4 Bump the all group in /plugin with 3 updates (#539)
  • c4ad46e Bump the all group with 5 updates (#542)
  • 1cde3c9 Bump the all group with 8 updates (#545)
  • 05e9e38 Upgrade Go to 1.23.4 and linter to 1.62.2 (#535)
  • 9c28e5d [codegen] Propagate ExtraPermissions into generated manifest data (#543)
  • fbb7327 [docs] App Manifest Doc & Writing Kinds Doc Update (#532)
  • 5f3f96a [k8s] Update KindNegotiatedSerializer to handle v1/Status objects, add logging (#537)
  • 7ed1693 [operator] Allow Informers to be dynamically added and removed from InformerController (#521)
  • 389e0f7 [operator] Clean up New functions (#538)
  • 6cabe27 [tests] Improve InformerController tests to rely less on timing (#534)
  • 37a344c chore: fixes a few nits in tutorial (#544)

v0.24.4

13 Dec 14:11
2d8aed7
Compare
Choose a tag to compare

Changelog

  • 093060d Bump the all group across 1 directory with 3 updates (#528)
  • 2d8aed7 Bump the all group in /plugin with 2 updates (#548)
  • 545d852 Bump the all group in /plugin with 3 updates (#540)
  • 0ddb5ec Bump the all group with 4 updates (#541)
  • 154e4de Bump the all group with 7 updates (#546)

v0.27.0

06 Dec 14:31
69d129d
Compare
Choose a tag to compare

Changes in this Release

This version contains a change to how kinds are written in CUE for use with the CLI commands (generate,project).
Instead of every top-level selector in the loaded CUE environment being treated as a kind, the CUE environment should have a singular manifest which contains app information and a list of kinds to use for the app. The grafana-app-sdk will look for the selector manifest by default to load this manifest, but this can be changed with the --selectors flag.

The CUE structure of a kind has also been changed slightly: fields that were previously in apiResource are now in the root structure of the kind, and group has been removed, as it gets inherited from the manifest (all kinds in a manifest must be in the same group).

A simple version of a manifest looks like:

manifest: {
	appName: "myapp" // app name is used to determine group
	kinds: [mykind1, mykind2] // list of kind selectors
}

If you currently are using a custom group name via apiResource.groupOverride, you can still use groupOverride in the manifest instead, and the value will be propagated to the kind.

You can also look at the diff for the test kind CUE between v0.26.0 and v0.27.0
as a reference for these changes.

Projects generated with CLI version v0.27.0 or greater will create a manifest on init, and add kinds to the manifest with grafana-app-sdk project kind add <kind>.

Changelog

  • 69d129d [App Manifest + Docs] Tutorial Doc Update for New Manifest, Associated Fixes (#525)
  • a9d2b24 [codegen] Source Codegen from CUE App Manifest (#483)

v0.24.3

06 Dec 14:22
b93f075
Compare
Choose a tag to compare

Changelog

  • 1beac10 Bump github.com/grafana/grafana-plugin-sdk-go from 0.259.4 to 0.260.0 in /plugin in the all group (#513)
  • bbb501e Bump github.com/grafana/grafana-plugin-sdk-go from 0.260.0 to 0.260.1 in /plugin in the all group (#516)
  • 0aa9ef2 Bump github.com/matryer/moq from 0.5.0 to 0.5.1 in the all group (#501)
  • e2ddd32 Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 in the all group (#509)
  • e08a996 Bump the all group in /plugin with 2 updates (#510)
  • bbd0371 Teach go codegen to emit yaml struct tags (#504)
  • 9448bf8 [LTS v0.24] Format kind JSON the same way the manifest is formatted (#487)
  • b93f075 [LTS v0.24][OpinionatedWatcher/Reconciler] Patch Against the Preferred Version (#520)