Releases: grafana/grafana-app-sdk
v0.32.0
Changelog
- 0b3787b Add
--noschemasinmanifest
flag to CLI generate command (#623) - c70a87b Added
InformerSupplier
function tosimple.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
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
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
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
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
What Changed
- The
logging
package has been changed to a submodule, with the same release versions going forward as the main andplugin
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, withGroup
,Version
, andGroupVersion
as exported constants for convenience simple.Operator
has been deprecated and will be removed in a future release. Usesimple.App
andoperator.Runner
to achieve the same behavior.
Changelog
v0.28.0
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
andNewKubernetesBasedInformerWithFilters
have been reduced to justNewKubernetesBasedInformer(resource.Kind, ListWatchClient, KubernetesBasedInformerOptions)
NewMemcachedInformer
andNewMemcachedInformerWithFilters
have been reduced to justNewMemcachedInformer(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
v0.27.0
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
v0.24.3
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)