profile
viewpoint

grafana/tanka 912

Flexible, reusable and concise configuration for Kubernetes

sh0rez/awesome-libsonnet 9

Curated list of Kubernetes focused Jsonnet resources

malcolmholmes/grizzly 6

A utility for managing Jsonnet dashboards against the Grafana API

malcolmholmes/tanka-grafanacon-2020 4

Demo for GrafanaCon 2020

sh0rez/docsonnet 3

Experimental Jsonnet docs generator

malcolmholmes/cortex 0

A multitenant, horizontally scalable Prometheus as a Service

malcolmholmes/odoko-libsonnet 0

Various Jsonnet application libraries

malcolmholmes/terraform-provider-pagerduty 0

Terraform PagerDuty provider

malcolmholmes/vault-guides 0

Example usage of HashiCorp Vault secrets management

create barnchmalcolmholmes/grizzly

branch : cleaner-outputs-2

created branch time in a minute

push eventmalcolmholmes/grizzly

Chris Trott

commit sha 59d2d75fb695bfd7c08d45e0d8b9cf0743467311

Refactor URL construction for API endpoints Uses url and path packages to construct the URLs. This will handle nuances in how GRAFANA_URL is set. For example, a trailing forward slash will not result in a misformated API endpoint.

view details

chris trott

commit sha eb919090391ee5bc1c338f11d7e8181c72a3b771

Merge pull request #12 from malcolmholmes/url-handling Refactor URL construction for API endpoints

view details

Duologic

commit sha 61c024f2e75ae2d5cc30b1f53623b7762b0c4df8

feat(watch): apply when file changes

view details

Malcolm Holmes

commit sha 7c54ea573091c7f921e1ba60ea7ea6bc2d3e3134

Don't panic on missing dashboard

view details

Duologic

commit sha c062777515dbb11085c7d740160d6e6f3249aed5

refactor: use log.Print instead of fmt.Print log.Print has the advantage that it also prints a timestamp

view details

Malcolm Holmes

commit sha 6336667c97f5a531073bec036c592c16be3e1438

Tweak @duologic's watch code

view details

malcolmholmes

commit sha 013b6b0e17ab84d27b61461f50a5e19a87e6cf41

Merge pull request #14 from malcolmholmes/diff-with-missing-dashboards Don't panic on missing dashboard

view details

Malcolm Holmes

commit sha 767ba2133e4046d8d515e1ff83e97e0cef7ec5ea

remote redundant module

view details

malcolmholmes

commit sha 399c8c7115ab2758220fa810499caa9acba829fa

Merge pull request #15 from malcolmholmes/watch-apply feat(watch): apply when file changes (mk2)

view details

Malcolm Holmes

commit sha 75194ba6b2038dbf9ad0369b822446f03fc50886

Keep editor happy

view details

malcolmholmes

commit sha 1a1c77b89ecbeda0610859708a4a41f83812f94d

Merge pull request #17 from malcolmholmes/syntax-tweaks Keep editor happy

view details

Malcolm Holmes

commit sha 52402d254799cde1ac4fff88f4285c5ad337b16e

More concise output. More tankaesque

view details

Malcolm Holmes

commit sha 32ef9e1da5a414e21272468f5c6fbebb40b49ff0

Colourise

view details

Malcolm Holmes

commit sha b4997eedb74fef6b867cd8b17f6c4e55cd1129fa

Remove conflicts

view details

push time in 12 minutes

push eventmalcolmholmes/grizzly

Malcolm Holmes

commit sha 75194ba6b2038dbf9ad0369b822446f03fc50886

Keep editor happy

view details

malcolmholmes

commit sha 1a1c77b89ecbeda0610859708a4a41f83812f94d

Merge pull request #17 from malcolmholmes/syntax-tweaks Keep editor happy

view details

push time in 23 minutes

PR merged malcolmholmes/grizzly

Keep editor happy
+3 -3

0 comment

1 changed file

malcolmholmes

pr closed time in 23 minutes

PR opened malcolmholmes/grizzly

Keep editor happy
+3 -3

0 comment

1 changed file

pr created time in 23 minutes

create barnchmalcolmholmes/grizzly

branch : syntax-tweaks

created branch time in 24 minutes

push eventmalcolmholmes/grizzly

Malcolm Holmes

commit sha b05f25bb00137c2cee9faddc6d0e9eb6d8094cb6

Colourise

view details

push time in 25 minutes

PR merged malcolmholmes/grizzly

Reviewers
feat(watch): apply when file changes (mk2)

Tweaks to #13 - cool stuff.

+85 -8

0 comment

6 changed files

malcolmholmes

pr closed time in 3 hours

push eventmalcolmholmes/grizzly

Duologic

commit sha 61c024f2e75ae2d5cc30b1f53623b7762b0c4df8

feat(watch): apply when file changes

view details

Duologic

commit sha c062777515dbb11085c7d740160d6e6f3249aed5

refactor: use log.Print instead of fmt.Print log.Print has the advantage that it also prints a timestamp

view details

Malcolm Holmes

commit sha 6336667c97f5a531073bec036c592c16be3e1438

Tweak @duologic's watch code

view details

Malcolm Holmes

commit sha 767ba2133e4046d8d515e1ff83e97e0cef7ec5ea

remote redundant module

view details

malcolmholmes

commit sha 399c8c7115ab2758220fa810499caa9acba829fa

Merge pull request #15 from malcolmholmes/watch-apply feat(watch): apply when file changes (mk2)

view details

push time in 3 hours

push eventmalcolmholmes/grizzly

Malcolm Holmes

commit sha 767ba2133e4046d8d515e1ff83e97e0cef7ec5ea

remote redundant module

view details

push time in 3 hours

Pull request review commentmalcolmholmes/grizzly

feat(watch): apply when file changes (mk2)

 require ( 	github.com/grafana-tools/sdk v0.0.0-20200326200416-f0431e44c1c3 	github.com/kylelemons/godebug v1.1.0 	github.com/spf13/pflag v1.0.5+	gopkg.in/fsnotify.v1 v1.4.7

okay

malcolmholmes

comment created time in 3 hours

Pull request review commentmalcolmholmes/grizzly

feat(watch): apply when file changes (mk2)

 func Diff(config Config, jsonnetFile string, targets *[]string) error { 		existingBoardJSON, _ := existingBoard.GetDashboardJSON()  		if boardJSON == existingBoardJSON {-			log.Println("No differences")+			fmt.Println("No differences") 		} else { 			difference := diff.Diff(existingBoardJSON, boardJSON)-			log.Println(difference)+			fmt.Println(difference) 		} 	} 	return nil }  // Apply renders a Jsonnet dashboard then pushes it to Grafana via the API func Apply(config Config, jsonnetFile string, targets *[]string) error {-	folderId, err := folderId(config, jsonnetFile)+	folderID, err := folderId(config, jsonnetFile)

editor asks for it!

malcolmholmes

comment created time in 3 hours

push eventmalcolmholmes/grizzly

Malcolm Holmes

commit sha 7c54ea573091c7f921e1ba60ea7ea6bc2d3e3134

Don't panic on missing dashboard

view details

malcolmholmes

commit sha 013b6b0e17ab84d27b61461f50a5e19a87e6cf41

Merge pull request #14 from malcolmholmes/diff-with-missing-dashboards Don't panic on missing dashboard

view details

push time in 3 hours

PR merged malcolmholmes/grizzly

Reviewers
Don't panic on missing dashboard

closes #6

+19 -1

1 comment

3 changed files

malcolmholmes

pr closed time in 3 hours

issue closedmalcolmholmes/grizzly

Diff command panics if remote dashboard not found

I'd like Grizzly to avoid the panic and output a deliberate error message.

closed time in 3 hours

trotttrotttrott

PR opened malcolmholmes/grizzly

Reviewers
More concise output. More tankaesque
+28 -10

0 comment

2 changed files

pr created time in 3 hours

create barnchmalcolmholmes/grizzly

branch : cleaner-outputs

created branch time in 3 hours

PR opened malcolmholmes/grizzly

Reviewers
feat(watch): apply when file changes (mk2)

Tweaks to #13 - cool stuff.

+85 -8

0 comment

6 changed files

pr created time in 3 hours

create barnchmalcolmholmes/grizzly

branch : watch-apply

created branch time in 3 hours

MemberEvent

PR opened malcolmholmes/grizzly

Reviewers
Don't panic on missing dashboard
+19 -1

0 comment

3 changed files

pr created time in 6 hours

create barnchmalcolmholmes/grizzly

branch : diff-with-missing-dashboards

created branch time in 6 hours

issue commentgrafana/grafonnet-lib

Grafonnet-lib repository scope and how to manage third-party ones

@roidelapluie I agree the boundary of 'core Grafana features' is relatively arbitrary. It could equally be 'all Grafana developed plugins'. The thing is, the Grafana developers working on Grafonnet are not the same as those working on Grafana plugins, meaning we don't know much about specific Grafana plugins, so aren't in a position to judge the correctness of a Grafonnet extension.

@jbfavre what do you mean when you say 'Grafana should step in and back this repository'? What have you got in mind?

jbfavre

comment created time in a day

push eventmalcolmholmes/grizzly

Chris Trott

commit sha 53faa6dcc8634d08768becd9d17540fd9c19a245

Apply supports grafanaDashboardFolder Apply will attempt to search for a folder by title to associate with dashboards if grafanaDashboardFolder is set.

view details

Chris Trott

commit sha 1e1dbb629721ef961990f34b0228c052ce2f44b5

Mention grafanaDashboardFolder in README

view details

malcolmholmes

commit sha 0f3debceccf8bb4e0d641d495d9d2e0321b1fd1c

Merge pull request #10 from malcolmholmes/folder-configurable Folder is Configurable

view details

push time in a day

PR merged malcolmholmes/grizzly

Folder is Configurable

apply command looks for grafanaDashboardFolder field and uses the folder/dashboard search API to attempt to find a folder ID for it. If unset or folder not found, it will default to 0 which will result in dashboards being applied to the "General" folder.

Closes https://github.com/malcolmholmes/grizzly/issues/8.

+67 -7

0 comment

3 changed files

trotttrotttrott

pr closed time in a day

issue closedmalcolmholmes/grizzly

Folder Support

Folder ID is currently hard coded as 0. I'd like Grizzly to support grafanaDashboardFolder for specifying which folder it should use.

closed time in a day

trotttrotttrott

pull request commentgrafana/tanka

doc: refresh website

Can you remind me the preview URL? Thanks!

sh0rez

comment created time in a day

delete branch grafana/tanka

delete branch : mccollam-patch-1

delete time in 3 days

push eventgrafana/tanka

Ronald McCollam

commit sha 12013916be918c0eae65e4c3019713f37e391e4f

clarify "include it in Jsonnet" (#284) Clarify "include it in Jsonnet" to indicate where

view details

push time in 3 days

PR merged grafana/tanka

clarify "include it in Jsonnet"

Clarify "include it in Jsonnet" to indicate where

+1 -1

0 comment

1 changed file

mccollam

pr closed time in 3 days

issue commentgrafana/tanka

docker swarm

Tanka has been deliberately made structured so that it can be consumed as a library. See https://github.com/malcolmholmes/grizzly. It follows the same show/diff/apply model, using jsonnet, but the end system is a Grafana install. You could possibly make an equivalent of Tanka (in Go) that reuses much of the stuff in common (parsing spec.json, jsonnet interaction, CLI stuff) and just implements the docker swarm specific stuff (diff, apply, etc).

We've certainly thought of the possibility of an ecosystem of jsonnet based tools. We don't use Docker Swarm ourselves, but it could be an interesting tool none-the-less.

vlcinsky

comment created time in 5 days

PR opened jsonnet-libs/ecosystem

Reviewers
First style guide pass
+340 -0

0 comment

3 changed files

pr created time in 6 days

create barnchjsonnet-libs/ecosystem

branch : style-guide

created branch time in 6 days

pull request commentgrafana/grafonnet-lib

Add support for polystat panel

@jbfavre you make reasonable points. I would suggest moving them to a separate issue so they can be discussed independently of this case.

The limitation on which plugins Grafonnet would support was made relatively arbitrarily, based upon the capacity of the teams that manage it. The alternative was a large number of either unreviewed or unmerged PRs.

The other possibility is we look at auto generating Grafonnet plugins, based upon field definitions provided by Grafana 7.0. However, this idea is currently totally untested, and thus still just dreaming.

jbfavre

comment created time in 6 days

push eventmalcolmholmes/tanka-grafanacon-2020

Malcolm Holmes

commit sha 860e69264c3c74f6ab391a448d2c57065fcbb444

Last tweaks

view details

push time in 7 days

Pull request review commentmalcolmholmes/grizzly

Simplify Environment Variables

 type Config struct { // ParseEnvironment parses necessary environment variables func ParseEnvironment() (*Config, error) { 	var config Config-	if url, exists := os.LookupEnv("GRAFANA_URL"); exists {-		config.GrafanaURL = url-	} else {-		protocol, protocolExists := os.LookupEnv("GRAFANA_PROTOCOL")-		user, userExists := os.LookupEnv("GRAFANA_USER")-		token, tokenExists := os.LookupEnv("GRAFANA_TOKEN")-		host, hostExists := os.LookupEnv("GRAFANA_HOST")-		path, pathExists := os.LookupEnv("GRAFANA_PATH")-		if !hostExists {-			return nil, errors.New("Either GRAFANA_URL or GRAFANA_HOST required")-		}-		if !protocolExists {-			protocol = "https"-		}-		auth := ""-		if userExists && tokenExists {-			auth = fmt.Sprintf("%s:%s", user, token)+	if gu, exists := os.LookupEnv("GRAFANA_URL"); exists {+		u, err := url.Parse(gu)

same here, more descriptive variable name please :-)

trotttrotttrott

comment created time in 8 days

Pull request review commentmalcolmholmes/grizzly

Simplify Environment Variables

 type Config struct { // ParseEnvironment parses necessary environment variables func ParseEnvironment() (*Config, error) { 	var config Config-	if url, exists := os.LookupEnv("GRAFANA_URL"); exists {-		config.GrafanaURL = url-	} else {-		protocol, protocolExists := os.LookupEnv("GRAFANA_PROTOCOL")-		user, userExists := os.LookupEnv("GRAFANA_USER")-		token, tokenExists := os.LookupEnv("GRAFANA_TOKEN")-		host, hostExists := os.LookupEnv("GRAFANA_HOST")-		path, pathExists := os.LookupEnv("GRAFANA_PATH")-		if !hostExists {-			return nil, errors.New("Either GRAFANA_URL or GRAFANA_HOST required")-		}-		if !protocolExists {-			protocol = "https"-		}-		auth := ""-		if userExists && tokenExists {-			auth = fmt.Sprintf("%s:%s", user, token)+	if gu, exists := os.LookupEnv("GRAFANA_URL"); exists {
	if grafanaURL, exists := os.LookupEnv("GRAFANA_URL"); exists {

might be a bit more descriptive :-)

trotttrotttrott

comment created time in 8 days

pull request commentgrafana/grafonnet-lib

Fix tablePanel.addTargets

You've removed a lot of complex code here. How can I validate that this works as expected?

trotttrotttrott

comment created time in 8 days

issue commentgrafana/tanka

injectLabels should not inject on RoleList and RoleBindingList objects

@fculpo that's really annoying. List objects don't support metadata in the same way. And it isn't immediately obvious how to handle this without tanka knowing every type of api-resource.

I suggest you disable injectLabels for now on those environments. We'll hopefully be able to get to this in a couple of weeks time.

fculpo

comment created time in 9 days

create barnchjsonnet-libs/k8s-alpha

branch : readme-wording-suggestions

created branch time in 9 days

push eventmalcolmholmes/tanka-grafanacon-2020

Malcolm Holmes

commit sha 9b176a47f749c85b8a85eaf2ea35c9f59d9bfd6c

remove unneeded import

view details

push time in 13 days

push eventmalcolmholmes/tanka-grafanacon-2020

Malcolm Holmes

commit sha aec267ad4ae4475a77ba8f0a17bacb5c2ed3d35a

avoid volume name conflict

view details

push time in 16 days

push eventmalcolmholmes/tanka-grafanacon-2020

Malcolm Holmes

commit sha d7ca7e9dc0155c72b08e199f311cbd6ddf1a5d66

Add grafana.ini, formatting

view details

push time in 16 days

create barnchmalcolmholmes/tanka-grafanacon-2020

branch : master

created branch time in 16 days

created repositorymalcolmholmes/tanka-grafanacon-2020

Demo for GrafanaCon 2020

created time in 21 days

issue openedgrafana/tanka

tanka should validate correct jb version before initialising

tk init was failing for me. Upgrading to latest jb fixed this. Would be good if Tanka validated that jb was a sufficient version before proceeding, as error message is not helpful otherwise:

jb: error: failed to install packages: downloading: failed to create tmp dir: stat vendor/.tmp: no such file or directory
Installing k.libsonnet: exit status 1

created time in 23 days

Pull request review commentgrafana/grafonnet-lib

Contributing Guide

 that would not be covered by Grafonnet already.  ## Scope -Grafonnet aims at supporting any basic feature of dashboards (annotations,-templates, rows, panels...) as well as a number of datasources and plugins.--We'd like to limit the Grafana plugins supported in Grafonnet to only official plugins.+Grafonnet aims to support any basic feature of dashboards (annotations,+templates, rows, panels...) as well as a number of datasources and plugins. That+is, official plugins only.
templates, rows, panels...) as well as a number of datasources and plugins. That
is, core Grafana features only.
trotttrotttrott

comment created time in a month

Pull request review commentgrafana/grafonnet-lib

Contributing Guide

+# Contributing++Thank you for your interest in contributing to Grafonnet! We welcome all people+who want to contribute in a healthy and constructive manner within our+community. Grafonnet is developed within the Grafana community. Therefore we+are following the same [Code of Conduct as+Grafana](https://github.com/grafana/grafana/blob/master/CODE_OF_CONDUCT.md). To+help us create a safe and positive community experience for all, we require all+participants to adhere to it.++## Plugin Scope++**Grafonnet only aims to support official plugins.**

No, it only supports features of core Grafana. Even official plugins will need their own library.

trotttrotttrott

comment created time in a month

Pull request review commentgrafana/grafonnet-lib

Contributing Guide

+# Contributing++Thank you for your interest in contributing to Grafonnet! We welcome all people+who want to contribute in a healthy and constructive manner within our+community. Grafonnet is developed within the Grafana community. Therefore we+are following the same [Code of Conduct as+Grafana](https://github.com/grafana/grafana/blob/master/CODE_OF_CONDUCT.md). To+help us create a safe and positive community experience for all, we require all+participants to adhere to it.++## Plugin Scope++**Grafonnet only aims to support official plugins.**++We've drawn this line to ensure that the code base stays focused and manageable+over time. We do, however, encourage development and use of community Grafonnet+plugins. See the [Community+Plugins](https://grafana.github.io/grafonnet-lib/community-plugins/) page for+more info on this.
While Grafonnet itself only supports core Grafana features, we strongly encourage development and use of community Grafonnet plugins. See the [Community Plugins](https://grafana.github.io/grafonnet-lib/community-plugins/) page for more info on this.
trotttrotttrott

comment created time in a month

issue commentgrafana/grafonnet-lib

Add support for polystat plugin in grafonnet-lib

Your plugin looks fine. I would suggest playing around with some raw jsonnet files, play with importing a simple file into another. Perhaps you want to use JSONNET_PATH or -J to specify paths for Jsonnet to look up files. Hence, put all of your plugins, and grafonnet itself, into \lib, then do jsonnet -J lib mydashboards.jsonnet.

achilles42

comment created time in a month

Pull request review commentmalcolmholmes/grizzly

Implement Target Flag and List Command

 func Apply(config Config, jsonnetFile string) error { 	return nil } -func renderDashboards(jsonnetFile string) (Boards, error) {-	template := `-  local f = import "{{FILE}}";-  {-    [k]: { dashboard: f.grafanaDashboards[k], folderId: 0, overwrite: true}-    for k in std.objectFields(f.grafanaDashboards)-  }-  `-	jsonnet := strings.ReplaceAll(template, "{{FILE}}", jsonnetFile)+func dashboardKeys(jsonnetFile string) ([]string, error) {+	jsonnet := fmt.Sprintf(`+local f = import "%s";+std.objectFields(f.grafanaDashboards)`, jsonnetFile)+	output, err := evalToString(jsonnet)+	if err != nil {+		return nil, err+	}+	var keys []string+	err = json.Unmarshal([]byte(output), &keys)+	if err != nil {+		return nil, err+	}+	return keys, nil+}

I wonder if the code might be smaller and easier to understand if dashboardKeys called renderDashboards, parsed the json and grabbed the keys from that. It would be slower, for sure, but exercises a single code path more and would I suspect be easier to read.

trotttrotttrott

comment created time in a month

MemberEvent

Pull request review commentgrafana/grafonnet-lib

Refactor Docs, Add Style Guide

 that would not be covered by Grafonnet already. Grafonnet aims at supporting any basic feature of dashboards (annotations, templates, rows, panels...) as well as a number of datasources and plugins. +We'd like to limit the plugins supported Grafonnet to only official plugins.
We'd like to limit the Grafana plugins supported in Grafonnet to only official plugins.
trotttrotttrott

comment created time in a month

pull request commentgrafana/jsonnet-libs

Move contents from lib to base folder

We've only recently split that out, I think that is a nice self-contained library and should stay as such.

I want to see Grafana consumable without Prometheus - we can't assume all Grafana users also use Prometheus. And the Grafana lib has some useful stuff in it. Making sure the Grafana lib is consumable as a subdir of prometheus-ksonnet actually achieves most of this, actually. (other than the "why would I get a Grafana lib from inside a prometheus thing?" question).

So equally, nginx could go into its own folder, prometheus too - perhaps people might want to use prometheus but something other than Grafana. Then, this 'prometheus-ksonnet' thing becomes an aggregation of these powerful libraries.

hoenn

comment created time in a month

issue commentgrafana/jsonnet-libs

Tidy up Prometheus config

Grafana does not reload on yaml file changes, just json (i.e. dashboards). This catches users out as they expect dashboards and notification channels to reload but they dont.

The yaml configmaps should have hashes to trigger reloads to fix this.

tomwilkie

comment created time in a month

pull request commentgrafana/jsonnet-libs

Don't run Grafana as root anymore,

Re root : makes sense.

Re reloading, datasources and notification channel yamls dont reload on change. I presume it is that Grafana watches json but not yaml files. Would be good to reload these too, but doesnt need to be in this PR.

tomwilkie

comment created time in a month

pull request commentgrafana/jsonnet-libs

Don't run Grafana as root anymore,

Is there a specific reason not to run Grafana as root? (Other than root being a bad idea in general?)

And why not do the hash thing on all configmaps? (Except dashboards, which reload already). it would be useful (and less confusing) for it to reload datasources/channels too.

tomwilkie

comment created time in a month

issue commentgrafana/tanka

Unable to use util.configMapVolumeMount

You should add configMapVolumeMount to the deployment not to the container.

jalseth

comment created time in 2 months

push eventmalcolmholmes/odoko-libsonnet

Malcolm Holmes

commit sha 037c9e17456d57e3df821b2583edc8c963020711

Update to in-cluster auth

view details

push time in 2 months

push eventmalcolmholmes/odoko-libsonnet

Malcolm Holmes

commit sha f1194efdadda508322804131fac29f54803de948

Add Golang dyn-dns utility. Pre-deployment

view details

push time in 2 months

push eventmalcolmholmes/odoko-libsonnet

Malcolm Holmes

commit sha 54f981ad0d901e280be39c78d8c9e62da25da276

Separate domains, add dyndns annotation

view details

push time in 2 months

Pull request review commentgrafana/tanka

doc(release): Changelog for 0.9.0

 # Changelog +## 0.9.0 (2020-04-07)++**This release includes a critical fix, update ASAP**.++Another Tanka release is here, just in time for Easter. Enjoy the built-in+[formatter](#sparkles-highlight-jsonnet-formatter-tk-fmt), much [more+intelligent apply](#rocket-highlight-sorting-during-apply) and several important+bug fixes.++#### :rotating_light: Alert: `kubectl diff` changes resources :rotating_light:++The recently released `kubectl` version `v1.18.0` includes a **critical issue**+that results `kubectl diff` (and so `tk diff` as well) to **apply** the changes.
that causes `kubectl diff` (and so `tk diff` as well) to **apply** the changes.
sh0rez

comment created time in 2 months

Pull request review commentgrafana/tanka

doc(release): Changelog for 0.9.0

 # Changelog +## 0.9.0 (2020-04-07)++**This release includes a critical fix, update ASAP**.++Another Tanka release is here, just in time for Easter. Enjoy the built-in+[formatter](#sparkles-highlight-jsonnet-formatter-tk-fmt), much [more+intelligent apply](#rocket-highlight-sorting-during-apply) and several important+bug fixes.++#### :rotating_light: Alert: `kubectl diff` changes resources :rotating_light:++The recently released `kubectl` version `v1.18.0` includes a **critical issue**+that results `kubectl diff` (and so `tk diff` as well) to **apply** the changes.++This can be very **harmful**, so Tanka decided to require you to **downgrade**+to `v1.17.x`, until the fix in `kubectl` version `v1.18.1` is released.++- Upstream issue: https://github.com/kubernetes/kubernetes/issues/89762)+- Unreleased fix: https://github.com/kubernetes/kubernetes/pull/89795++#### :sparkles: Highlight: Jsonnet formatter (`tk fmt`)++Since `jsonnetfmt` was [rewritten in Go+recently](https://github.com/google/go-jsonnet/pull/388), Tanka now ships it as+`tk fmt`. Just run `tk fmt .` it to keep all Jsonnet files recursively formatted.
`tk fmt`. Just run `tk fmt .` to keep all Jsonnet files recursively formatted.
sh0rez

comment created time in 2 months

push eventmalcolmholmes/grizzly

Malcolm Holmes

commit sha ea0b042f5cd618ff54e3529aac71e9028bc17b9f

Migrate to new name

view details

push time in 2 months

pull request commentgrafana/jsonnet-libs

Don't merge mixins in the global namespace anymore.

But the $.mixins map is still global.

You could say, the current approach is that prometheus-ksonnet "reaches out" into the global namespace for its mixins. What I am attempting to move us towards is where we create a Grafana or a "monitoring thing" and pass it our mixins:

local mymixin = import 'mymixin.libsonnet';
local grafana = import 'grafana.libsonnet';
{
  grafana: grafana.new()
     + grafana.withMixin(mymixin),
}

Which is a more conventional programming model. Because the grafana object (or monitoring thingie) holds the mixins within it, we can now have as many as we like, without them overlapping, because they have their resources handed to them, rather than the 'reaching out' that we are currently doing.

tomwilkie

comment created time in 2 months

issue commentgrafana/tanka

Native functions docs don't say how to access the functions

No worries. Please do make a PR. Also useful could be a little lib that wraps all these so we do have XYZ.parseYAML() etc functions.

malcolmholmes

comment created time in 2 months

pull request commentgrafana/tanka

feat: Formatter

This shouldn't block, but the thing that is missing for me is a "lint diff". i.e. show me what you would change. --stdout (which should have a short switch) doesn't tell me what changed (other than the number of files). Otherwise, this seems to be behaving as described.

sh0rez

comment created time in 2 months

pull request commentgrafana/tanka

feat: Formatter

Completion: tk fmt e<tab> gives tk fmt env not environments. Why?

sh0rez

comment created time in 2 months

Pull request review commentgrafana/jsonnet-libs

Upgrade kubernetes-mixin

                     "subdir": ""                 }             },-            "version": "release-0.1"+            "version": "master"

Yep, this was a locking back for Grafana Labs. This sets this right.

Duologic

comment created time in 2 months

MemberEvent

push eventmalcolmholmes/grafana-dash

Malcolm Holmes

commit sha 1498be36f13c3b14ca6acc6879c10b38b80cb8f2

Rename cmd file

view details

Malcolm Holmes

commit sha 8e801613d5d1e78538b00d771b31a052fd923311

Use better CLI lib, add usage

view details

push time in 2 months

push eventmalcolmholmes/grafana-dash

Malcolm Holmes

commit sha a2784cd279c520bd4e6cbb5f25d0549e11e8a778

Lint

view details

Malcolm Holmes

commit sha a78eab0b15edf858c53269af700dec25cfc23b64

go vet

view details

push time in 2 months

push eventmalcolmholmes/grafana-dash

Malcolm Holmes

commit sha 07a718689b6cf019a575224ebceaa7ceefd1c703

Fix makefile

view details

push time in 2 months

push eventmalcolmholmes/grafana-dash

Malcolm Holmes

commit sha f58ee884dea65f7024852500eca33f596a9634f7

Make refactored version build

view details

push time in 2 months

create barnchmalcolmholmes/grafana-dash

branch : master

created branch time in 2 months

created repositorymalcolmholmes/grafana-dash

A utility for managing Jsonnet dashboards against the Grafana API

created time in 2 months

push eventmalcolmholmes/odoko-libsonnet

Malcolm Holmes

commit sha 6848feae253b7932812c739c6676dabbc94c6d35

Add a withNodeSelector func

view details

Malcolm Holmes

commit sha 2b2c50bc849e53d4c46e61c03c6a1f76437b8ac9

Support subdomains, not just root and www

view details

Malcolm Holmes

commit sha 56cda1c5eb55fff526924c4695535b5ebf0af60c

Dynamic dns utility

view details

Malcolm Holmes

commit sha d7de3305d969534c8f3945a53425d2d13fd25425

Support for nginx ingress controller

view details

push time in 2 months

push eventgrafana/tns

Malcolm Holmes

commit sha 5b40755f87f835cb5c7098ab8805d06743660a70

Switch to use defaults() method

view details

push time in 2 months

create barnchgrafana/tns

branch : jsonnet-conversion

created branch time in 2 months

issue openedgrafana/tanka

Native functions docs don't say how to access the functions

This page: https://tanka.dev/jsonnet/native

Offers juicy functions such as manifestJSONFromJSON(), but does not tell us how to access these functions. Are they standalone, using std., using tanka.? This omission renders the page effectively useless, unless one already happens to know.

created time in 2 months

push eventmalcolmholmes/odoko-libsonnet

Malcolm Holmes

commit sha c2f04992d32dc61211f14d512d28ec2f26e2f5de

Add Discourse

view details

push time in 2 months

push eventmalcolmholmes/odoko-libsonnet

Malcolm Holmes

commit sha e64e3d96c919cbd54468e3de55e2938e8e9adb99

Add a basic readme

view details

push time in 2 months

create barnchmalcolmholmes/odoko-libsonnet

branch : master

created branch time in 2 months

created repositorymalcolmholmes/odoko-libsonnet

Various Jsonnet application libraries

created time in 2 months

pull request commentgrafana/tanka

feat: Formatter

I tried this on an un-linted Jsonnet codebase. Running tk fmt did nothing. tk fmt lib did nothing. tk fmt --help gave me help output, suggesting I'm using the right version. Is this my mistake, or a fault with the code?

sh0rez

comment created time in 2 months

PR opened grafana/jsonnet-libs

Reviewers
resolve lint issues in kausal.libsonnet and prometheus-ksonnet

Also switch to use jsonnetfmt instead of jsonnet fmt.

+11 -11

0 comment

5 changed files

pr created time in 2 months

create barnchgrafana/jsonnet-libs

branch : lint

created branch time in 2 months

push eventgrafana/grafonnet-lib

Malcolm Holmes

commit sha 2c9aa72cb0c7ad8577c993df4207ad179b4ca7da

Suggested approach to external plugins

view details

Malcolm Holmes

commit sha d047af0e3b7eb53350fa341002c4c852e3d75a0b

Clarification

view details

Malcolm Holmes

commit sha dee0ae7e7d1ff016a4520b05946d612b41a0d794

Add the idea of plugins, and a list

view details

malcolmholmes

commit sha 657504692fffacc72f7b460adf504f7fc67b0edb

Update README.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

malcolmholmes

commit sha 87904377378c6473db1fa2fb9c098ad0d84811c7

Update plugins.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

malcolmholmes

commit sha f9c4faf772019b80cce3cbfdf9f768b59eab8ca4

Update plugins.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

malcolmholmes

commit sha 459eb07354bbfb0fa8256eff7825203f8231ec24

Update plugins.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

malcolmholmes

commit sha c72e6fc2c461a613f14fd24a83378371c8b4ce36

Merge pull request #188 from grafana/contribution-guidelines-and-plugins Suggested approach to external plugins

view details

push time in 2 months

PR merged grafana/grafonnet-lib

Reviewers
Suggested approach to external plugins

Grafonnet currently lacks a boundary as to what features it will, and what features it won't support/accept.

This PR offers a suggestion. It makes sense to limit Grafonnet to features that are present within Vanilla Grafana, and add support for any other resources using Jsonnet patching. The outcome in terms of programming is the same, yet we can cover maintenance of Grafonnet libraries in a more distributed manner.

+72 -0

2 comments

2 changed files

malcolmholmes

pr closed time in 2 months

pull request commentgrafana/grafonnet-lib

Suggested approach to external plugins

@roidelapluie I am meaning vanilla Grafana, aka "Grafana without any plugins".

malcolmholmes

comment created time in 2 months

push eventgrafana/grafonnet-lib

malcolmholmes

commit sha 459eb07354bbfb0fa8256eff7825203f8231ec24

Update plugins.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

push time in 2 months

push eventgrafana/grafonnet-lib

malcolmholmes

commit sha f9c4faf772019b80cce3cbfdf9f768b59eab8ca4

Update plugins.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

push time in 2 months

push eventgrafana/grafonnet-lib

malcolmholmes

commit sha 87904377378c6473db1fa2fb9c098ad0d84811c7

Update plugins.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

push time in 2 months

push eventgrafana/grafonnet-lib

malcolmholmes

commit sha 657504692fffacc72f7b460adf504f7fc67b0edb

Update README.md Co-Authored-By: chris trott <908409+trotttrotttrott@users.noreply.github.com>

view details

push time in 2 months

push eventgrafana/grafonnet-lib

Malcolm Holmes

commit sha dee0ae7e7d1ff016a4520b05946d612b41a0d794

Add the idea of plugins, and a list

view details

push time in 2 months

PR opened grafana/grafonnet-lib

Reviewers
Suggested approach to external plugins

Grafonnet currently lacks a boundary as to what features it will, and what features it won't support/accept.

This PR offers a suggestion. It makes sense to limit Grafonnet to features that are present within Vanilla Grafana, and add support for any other resources using Jsonnet patching. The outcome in terms of programming is the same, yet we can cover maintenance of Grafonnet libraries in a more distributed manner.

+50 -0

0 comment

1 changed file

pr created time in 2 months

push eventgrafana/grafonnet-lib

Malcolm Holmes

commit sha d047af0e3b7eb53350fa341002c4c852e3d75a0b

Clarification

view details

push time in 2 months

push eventgrafana/grafonnet-lib

Malcolm Holmes

commit sha 2c9aa72cb0c7ad8577c993df4207ad179b4ca7da

Suggested approach to external plugins

view details

push time in 2 months

create barnchgrafana/grafonnet-lib

branch : contribution-guidelines-and-plugins

created branch time in 2 months

more