charmkeeper-terraform

- Find the terraform modules in the repository.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "charmkeeper-terraform" with this command: npx skills add seb4stien/charmkeeper/seb4stien-charmkeeper-charmkeeper-terraform

Plan:

  • Find the terraform modules in the repository.

  • Ensure each terraform module is following the implementation standards.

  • Run the tests to ensure the modules work as expected.

Implementation standards

Expected versions:

  • terraform : ~> 1.12

  • juju provider : ~> 1.0

The module should only have a "model_uuid" variable, no "model" variable.

Lint terraform modules with terraform fmt --recursive and tflint --recursive (fix the errors and the warnings).

Testing

Writing terraform tests

The terraform/tests folder should look like: https://github.com/canonical/platform-engineering-charm-template/tree/main/terraform/tests

There is a setup folder to configure the model. Follow the example from https://raw.githubusercontent.com/canonical/platform-engineering-charm-template/refs/heads/main/terraform/tests/setup/main.tf

There is main.tftest.hcl file. Follow the example of https://raw.githubusercontent.com/canonical/platform-engineering-charm-template/refs/heads/main/terraform/tests/main.tftest.hcl

  • Ensure that there is a renovate directive above each "revision" line.

After adapting the tests. There should not be a terraform/tests/main.tf file.

Local testing

The terraform tests should be run in a virtual machine named "charmkeeper".

If the machine doesn't exist, create it with: scripts/create-charmkeeper-vm.sh .

If not already done, mount the working directory folder in the machine with

multipass mount --type native $PWD charmkeeper:/workdir

For each TERRAFORM_MODULE

multipass exec charmkeeper -d /workdir/$TERRAFORM_MODULE -- terraform init multipass exec charmkeeper -d /workdir/$TERRAFORM_MODULE -- terraform test

CI testing

This workflow is the reference to use to implement or update CI tests: https://raw.githubusercontent.com/canonical/platform-engineering-charm-template/refs/heads/main/.github/workflows/test_terraform_modules.yaml

  • Adapt the k8s-controller and lxd-controller value depending on the charm type.

  • Adapt the terraform-directories to reflect where the modules are in this charm.

Maintain

Configuring renovate

Configure renovate like https://raw.githubusercontent.com/canonical/platform-engineering-charm-template/refs/heads/main/renovate.json to

  • Add a charmhub datasource and use it.

  • Add a regex custom manager for revisions.

  • Set ignorePath to an empty array to not exclude the tests/ folders of terraform.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

charmkeeper-integration-tests

No summary provided by upstream source.

Repository SourceNeeds Review
General

charmkeeperration-tests

No summary provided by upstream source.

Repository SourceNeeds Review
General

charmkeeper-tests

No summary provided by upstream source.

Repository SourceNeeds Review