Creating a module
A module is a stand-alone unit of automation code that can be reused by developers and shared in a larger system. Modules are not independently deployable and usually manage a smaller number of related resources and are used to build deployable architectures. Typically coded in Terraform or Ansible, modules are a convenience for developers similar to Node.js or Python packages. Think of modules as building blocks that can be used in combination with other modules to build a complete deployable architecture that solves a complex infrastructure need.
Modules that are created by IBM® are created and sourced in terraform-ibm-modules
, a public GitHub org. Modules include usage information and
one or more runnable examples. This enables users who you share your modules with to copy the usage code to get started with any module, but they are not deployable from a private catalog.
Guidelines and requirements for creating a module
The guidelines and requirements for creating a module are available in the IBM Cloud Terraform modules documentation. You can refer to the following resources for creating your own modules:
Next steps: Sharing modules
Modules can be used to create a deployable architecture. You have a couple of options for sharing your module with others in your organization or external users.
- You can share with users in your account or other accounts by using a private catalog, if you have a Git release.
- You might also choose to contribute your modules to the
terraform-ibm-modules
public GitHub org. For more information, see Contributing to the IBM Cloud Terraform modules project.