Skip to content

Instantly share code, notes, and snippets.

@jnsgruk
Created August 23, 2022 20:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jnsgruk/b713f59b4c4c53331337f281411355c4 to your computer and use it in GitHub Desktop.
Save jnsgruk/b713f59b4c4c53331337f281411355c4 to your computer and use it in GitHub Desktop.
Juju Terraform Providers
terraform {
required_providers {
juju = {
source = "juju/juju"
version = "0.4.0"
}
}
}
provider "juju" {}
resource "juju_model" "app" {
name = "app"
}
resource "juju_model" "db" {
name = "db"
}
resource "juju_application" "hello_juju" {
name = "myapp"
model = juju_model.app.name
charm {
name = "hello-juju"
}
}
resource "juju_application" "postgresql" {
name = "database"
model = juju_model.db.name
charm {
name = "postgresql"
}
}
resource "juju_offer" "postgresql_offer" {
model = juju_model.db.name
application_name = juju_application.postgresql.name
endpoint = "db"
}
resource "juju_integration" "postgresql_hello_juju" {
model = juju_model.app.name
application {
name = juju_application.hello_juju.name
endpoint = "db"
}
application {
offer_url = juju_offer.postgresql_offer.url
}
}
terraform {
required_providers {
juju = {
source = "juju/juju"
version = "0.4.0"
}
}
}
provider "juju" {}
resource "juju_model" "development" {
name = "dev"
}
resource "juju_application" "hello-kubecon" {
name = "hello-kubecon"
model = juju_model.development.name
charm {
name = "hello-kubecon"
}
}
resource "juju_application" "zinc" {
name = "zinc"
model = juju_model.development.name
trust = true
charm {
name = "zinc-k8s"
}
}
resource "juju_application" "grafana" {
name = "grafana"
model = juju_model.development.name
trust = true
charm {
name = "grafana-k8s"
channel = "beta"
}
}
resource "juju_application" "prometheus" {
name = "prometheus"
model = juju_model.development.name
trust = true
charm {
name = "prometheus-k8s"
channel = "beta"
}
}
resource "juju_application" "parca" {
name = "parca"
model = juju_model.development.name
trust = true
charm {
name = "parca-k8s"
channel = "edge"
}
config = {
enable-persistence = "true"
}
}
resource "juju_integration" "prometheus-grafana" {
model = juju_model.development.name
application {
name = juju_application.prometheus.name
endpoint = "grafana-source"
}
application {
name = juju_application.grafana.name
endpoint = "grafana-source"
}
}
resource "juju_integration" "prometheus-zinc" {
model = juju_model.development.name
application {
name = juju_application.prometheus.name
}
application {
name = juju_application.zinc.name
}
}
resource "juju_integration" "grafana-zinc" {
model = juju_model.development.name
application {
name = juju_application.grafana.name
}
application {
name = juju_application.zinc.name
}
}
resource "juju_integration" "parca-zinc" {
model = juju_model.development.name
application {
name = juju_application.parca.name
}
application {
name = juju_application.zinc.name
}
}
resource "juju_integration" "parca-prometheus" {
model = juju_model.development.name
application {
name = juju_application.prometheus.name
}
application {
name = juju_application.parca.name
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment