Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify the docs for installing via terraform #948

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 25 additions & 15 deletions docs/src/charm/howto/install-terraform.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,22 +34,37 @@ and k8s-worker child modules:
Example `main.tf`:

```hcl
data "juju_model" "testing" {
provider "juju" {}

resource "juju_model" "my_model" {
name = "juju-myk8s"
}

variable "k8s" {
description = "K8s deployment shared configuration"
channel = string
default = "1.xx/stable"
Comment on lines +43 to +46
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't quite like this variable declaration here. First it should be in an input file and second this should be closer to where it is set >> sub-module.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so, this channel likely should match both k8s and k8s-worker. We can eliminate this from the example if you think that's a good idea and have folks go read the individual tf modules to learn what variables are optional.

i was trying to use this variable as var.k8s.channel for both modules. Did i do this incorrectly?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

another thing, i wish i could use {{channel}} here

}

module "k8s" {
source = "path-to/k8s"
juju_model = module.juju_model.testing.name
source = "git::https://github.com/canonical/k8s-operator//charms/worker/k8s/terraform?ref=main"

model = juju_model.my_model.name
channel = var.k8s.channel
units = 3
}

module "k8s-worker" {
source = "path-to/k8s-worker"
juju_model = module.juju_model.testing.name
source = "git::https://github.com/canonical/k8s-operator//charms/worker/terraform?ref=main"
model = juju_model.my_model.name
channel = var.k8s.channel
units = 2
}
```

```{note}
Please ensure that the root module references the correct source path for the `k8s` and `k8s-worker` modules.
Also, ensure you replace the k8s.channel with {{version}}/stable
```

Example `versions.tf`:
Expand All @@ -68,14 +83,8 @@ terraform {

### Charm modules

Please download the charm modules from Github at:

```
git clone https://github.com/canonical/k8s-operator.git
```

Find the control-plane module at `k8s-operator/charms/worker/k8s/terraform` and
the k8s-worker module at `k8s-operator/tree/main/charms/worker/terraform`.
Find the `k8s` module at `//charms/worker/k8s/terraform` and
the `k8s-worker` module at `//charms/worker/terraform`.

The charm module for the k8s charm offers the following
configuration options:
Expand All @@ -84,7 +93,7 @@ configuration options:
| - | - | - | - | - |
| `app_name`| string | Application name | False | k8s |
| `base` | string | Ubuntu base to deploy the charm onto | False | [email protected] |
| `channel`| string | Channel that the charm is deployed from | False | 1.30/edge |
| `channel`| string | Channel that the charm is deployed from | False | null |
| `config`| map(string) | Map of the charm configuration options | False | {} |
| `constraints` | string | Juju constraints to apply for this application | False | arch=amd64 |
| `model`| string | Name of the model that the charm is deployed on | True | null |
Expand All @@ -97,7 +106,7 @@ Upon application, the module exports the following outputs:
| Name | Description |
| - | - |
| `app_name`| Application name |
| `provides`| Map of `provides` endpoints |
| `provides`| Map of `provides` endpoints |
| `requires`| Map of `requires` endpoints |

## Deploying the charms
Expand All @@ -107,6 +116,7 @@ commands:

```bash
terraform init
terraform plan
terraform apply
```

Expand Down
Loading