Closed julienduchesne closed 1 month ago
In this PR, the linux-node-overview dashboard is deployed to a Grafana instance using Pulumi in the three existing example languages
Changes to needed to make this happen:
pulumi/
__main__
All of these are runnable with:
$ pulumi install $ pulumi up
func main() { pulumi.Run(func(ctx *pulumi.Context) error { grafanaProvider, err := grafana.NewProvider(ctx, "grafana", &grafana.ProviderArgs{ Auth: pulumi.String("admin:admin"), Url: pulumi.String("http://localhost:3000"), }) if err != nil { return err } sampleDashboard, err := linuxNodeOverview.Build() if err != nil { return err } dashboardJson, err := json.MarshalIndent(sampleDashboard, "", " ") if err != nil { return err } pulumiDashboard, err := grafana.NewDashboard(ctx, *sampleDashboard.Uid, &grafana.DashboardArgs{ ConfigJson: pulumi.String(dashboardJson), }, pulumi.Provider(grafanaProvider)) if err != nil { return err } ctx.Export("dashboardUID", pulumiDashboard.Uid) return nil }) }
from grafana_foundation_sdk.cog.encoder import JSONEncoder import pulumiverse_grafana as grafana import pulumi import os import sys if __name__ == '__main__': # Hack to re-use other examples sys.path.append(os.path.join(os.path.dirname(__file__), "..", '..', "python", "linux-node-overview")) from main import builder provider = grafana.Provider( 'grafana', url='http://localhost:3000', auth='admin:admin') dashboard = builder.build() dashboard_json = JSONEncoder( sort_keys=True, indent=2).encode(dashboard) pulumi_dashboard = grafana.dashboard.Dashboard(dashboard.uid, config_json=dashboard_json, opts=pulumi.ResourceOptions(providers=[provider])) # Export the Name of the repository pulumi.export('dashboardUID', pulumi_dashboard.uid)
import * as pulumi from "@pulumi/pulumi"; import * as grafana from "@pulumiverse/grafana"; import { builder } from '../../typescript/linux-node-overview/src/index'; const provider = new grafana.Provider("grafana", { url: "http://localhost:3000", auth: "admin:admin" }); const dashboard = builder.build(); const pulumiDashboard = new grafana.Dashboard(dashboard.uid || 'uid', { configJson: JSON.stringify(dashboard, null, 2) }, { provider: provider }); export const dashboardUid = pulumiDashboard.uid;
In this PR, the linux-node-overview dashboard is deployed to a Grafana instance using Pulumi in the three existing example languages
Changes to needed to make this happen:
pulumi/
example dir with the Pulumi configs__main__
if statementOverview of what it looks like
All of these are runnable with:
Go
Python
Typescript