You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`tofugu`is a configuration management CLI that dynamically orchestrates OpenTofu or Terraform deployments. It separates infrastructure configuration from code, enabling DevOps teams to reuse Terraform modules across multiple environments (dev, staging, production) without code duplication. Configuration can be sourced from files or a Configuration Management Database (CMDB) with an OpenAPI-powered interface called Toaster.
10
+
IaCConsole CLI is a configuration management tool that dynamically orchestrates OpenTofu or Terraform deployments. It separates infrastructure configuration from code, enabling DevOps teams to reuse Terraform modules across multiple environments (dev, staging, production) without code duplication. Configuration can be sourced from files or the IaCConsole API (CMDB), an OpenAPI-powered configuration database.
11
11
12
12
## Table of Contents
13
13
@@ -38,23 +38,23 @@
38
38
You will need any Kubernetes cluster (best small temporary like Podman+Kind or MiniKube).
39
39
Check that kubectl context poiting to this test cluster! Not Production!
40
40
41
-
For a full end-to-end example of using TofuGu in a CI/CD pipeline, see the pre-configured Jenkins deployment in [examples/jenkins/README.md](examples/jenkins/README.md).
41
+
For a full end-to-end example of using IaCConsole CLI in a CI/CD pipeline, see the pre-configured Jenkins deployment in [examples/jenkins/README.md](examples/jenkins/README.md).
3. Execute to generate simple demo configuration with connection to demo account in [Configuration Management Database (CMDB) with OpenAPI - Toaster](#configuration-management-database-cmdb-with-openapi---toaster):
69
+
3. Execute to generate simple demo configuration with connection to demo account in the [IaCConsole API (CMDB)](#configuration-management-database-cmdb---iacconsole-api):
70
70
71
71
```bash
72
72
tofugu init
@@ -82,27 +82,28 @@ tofugu init --toaster=false
82
82
83
83
## Quick start with AI Coding Assistants
84
84
85
-
Getting started with `tofugu` is even easier using AI coding assistants:
85
+
Getting started with IaCConsole CLI is even easier using AI coding assistants:
86
86
87
87
1. Open the repository in your preferred editor with an AI assistant installed:
88
88
89
-
- GitHub Copilot in VS Code
90
-
- Cursor
91
-
- Claude/Anthropic
92
-
- WindSurf
93
-
- Cline
89
+
- GitHub Copilot in VS Code
90
+
- Cursor
91
+
- Claude/Anthropic
92
+
- WindSurf
93
+
- Cline
94
94
95
95
2. Ask questions like:
96
-
- "How do I set up tofugu for AWS resources?"
97
-
- "Help me create a new tofi for a GCP instance"
98
-
- "How do I use Toaster CMDB with tofugu?"
99
-
- "Show me how to pass environment variables to my terraform code"
96
+
97
+
- "How do I set up IaCConsole for AWS resources?"
98
+
- "Help me create a new tofi for a GCP instance"
99
+
- "How do I use the IaCConsole API (CMDB)?"
100
+
- "Show me how to pass environment variables to my terraform code"
100
101
101
102
These instructions provide context about:
102
103
103
-
- The architecture and key concepts of tofugu
104
+
- The architecture and key concepts of IaCConsole CLI
104
105
- How to work with tofies, dimensions, and inventory sources
105
-
- Integration with Toaster CMDB (OpenAPI-powered Configuration Management Console) for centralized configuration
106
+
- Integration with the IaCConsole API (CMDB) and IaCConsole Web UI for centralized configuration
106
107
- Project-specific conventions and workflows
107
108
108
109
For more complex tasks, you can ask the AI assistant to guide you step-by-step through creating configurations, setting up the backend, or troubleshooting deployment issues.
@@ -157,30 +158,30 @@ Currently, only `dimensions` with a list of the required/expected dimensions (fr
157
158
158
159
## Configuration Storage
159
160
160
-
### Configuration Management Database (CMDB) with OpenAPI - Toaster
161
+
### Configuration Management Database (CMDB) — IaCConsole API
161
162
162
-
Toaster is an OpenAPI-powered Configuration Management Database with a web-based **Configuration Management Console** for centrally managing infrastructure configurations.
163
+
IaCConsole API is an OpenAPI-powered Configuration Management Database with a web-based **IaCConsole Web UI** for centrally managing infrastructure configurations.
163
164
164
-
You could set the env variable `toasterurl` to point to Toaster CMDB, like:
165
+
You can set the env variable `toasterurl` to point to the IaCConsole API (CMDB), like:
To generate your own credentials please go to [https://toaster.altuhov.su/](https://toaster.altuhov.su/), fill the form with Account Name, Email, and press `Create Account` and you will receive generated credentials and a ready-to-use export command like:
171
+
To generate your own credentials please go to [https://iacconsole.com/](https://iacconsole.com/), fill the form with Account Name, Email, and press `Create Account` and you will receive generated credentials and a ready-to-use export command like:
With the correct `toasterurl`, TofuGu will connect and receive all the required dimension data from Toaster CMDB.
179
+
With the correct `toasterurl`, the CLI will connect and receive all the required dimension data from the IaCConsole API (CMDB).
179
180
An additional parameter could be passed to tofugu `-w workspacename`. In general, `workspacename` is the branch name of the source repo where the dimension is stored. If Toaster CMDB does not find the dimension with the specified `workspacename`, it will try to return the dimension from the `master` workspace/branch!
180
181
181
-
**Toaster CMDB** provides additional features for your CI/CD pipelines:
182
+
**IaCConsole API (CMDB)** provides additional features for your CI/CD pipelines:
182
183
183
-
-**Configuration Management Console** - Web UI for managing configurations at [https://toaster.altuhov.su/console](https://toaster.altuhov.su/console)
184
+
-**IaCConsole Web UI** - Visual console for managing configurations at [https://iacconsole.com/console](https://iacconsole.com/console)
184
185
-**OpenAPI RESTful API** - Programmatic access to configuration data with full API documentation
185
186
-**CI/CD Integration** - Fetch configurations directly in pipelines (e.g., [first-app.json](examples/inventory/demo-org/application/first-app.json) for validation)
186
187
-**Dynamic Dropdowns** - Get dimension lists for [Jenkins drop-downs](examples/jenkins/README.md) to select deployment targets
@@ -190,13 +191,13 @@ An additional parameter could be passed to tofugu `-w workspacename`. In general
190
191
**OpenAPI Documentation:**
191
192
[Swagger API docs - Full RESTful API documentation and examples](https://app.swaggerhub.com/apis-docs/altuhovsu/tofugu_toaster_api/)
192
193
193
-
To upload/update dimensions in Toaster from your Inventory Files repo you could use [inventory-to-toaster.sh script example](examples/inventory-to-toaster.sh) and execute it like `bash examples/inventory-to-toaster.sh examples/inventory/`
194
+
To upload/update dimensions to the IaCConsole API from your Inventory Files repo you can use [inventory-to-toaster.sh script example](examples/inventory-to-toaster.sh) and execute it like `bash examples/inventory-to-toaster.sh examples/inventory/`
194
195
195
-
Please join the [Toaster CMDB beta-testers!](https://github.com/alt-dima/tofugu/issues/10)
196
+
Please join the [IaCConsole beta-testers!](https://github.com/alt-dima/iacconsole-cli/issues/10)
If the env variable `toasterurl` is not set, TofuGu will use file-based configuration Storage (probably dedicated git repo), specified by the path configured in `inventory_path`.
200
+
If the env variable `toasterurl` is not set, the CLI will use file-based configuration Storage (probably dedicated git repo), specified by the path configured in `inventory_path`.
200
201
201
202
Examples:
202
203
@@ -205,7 +206,7 @@ Examples:
205
206
206
207
### Dimensions usage in tf-code
207
208
208
-
When you set dimensions in the tofugu flags `-d datacenter:staging1`, TofuGu will provide you inside tf-code next variables:
209
+
When you set dimensions in the CLI flags `-d datacenter:staging1`, IaCConsole CLI will provide you inside tf-code the following variables:
209
210
210
211
- var.tofugu_datacenter_name = will contain string `staging1`
211
212
- var.tofugu_datacenter_data = will contain the whole object from `staging1.json`
@@ -243,7 +244,7 @@ Config file (in YAML format) path may be provided by the `--config` flag, for ex
If the `--config` flag is not set, then it will try to load from the default location `$HOME/.tofugu`
247
+
If the `--config` flag is not set, then it will try to load from the default location `$HOME/.tofugu` (current binary name remains `tofugu`).
247
248
248
249
[.tofugu example](examples/.tofugu):
249
250
@@ -268,7 +269,7 @@ gcp-org:
268
269
- `inventory_path`= relative path to the folder with JSONs
269
270
- `cmd_to_exec`= name of the binary to execute (`tofu` or `terraform`)
270
271
- `backend`= Config values for backend provider. All the child key:values will be provided to `init` and `$tofugu_state_path` will be replaced by the generated path.
271
-
For example, when you execute `tofugu cook ...... -- init`, TofuGu actually will execute `init -backend-config=bucket=gcp-tfstates -backend-config=prefix=account_free-tier/free_instance.tfstate`
272
+
For example, when you execute `tofugu cook ...... -- init`, IaCConsole CLI actually will execute `init -backend-config=bucket=gcp-tfstates -backend-config=prefix=account_free-tier/free_instance.tfstate`
272
273
273
274
At least
274
275
@@ -313,7 +314,7 @@ Examples:
313
314
314
315
## Remote state (Terraform Backend where state data files are stored)
315
316
316
-
AWS, Google Cloud, and some other backends are supported! You could configure any backend provider in the [TofuGu Config file](#hometofugu)
317
+
AWS, Google Cloud, and some other backends are supported! You can configure any backend provider in the [Config file](#hometofugu)
317
318
318
319
[For AWS S3 your terraform code (`tofi`) should contain at least:](examples/tofies/demo-org/vpc/versions.tf#L4):
319
320
@@ -341,7 +342,7 @@ This could be useful if you want to store by default tfstate for all the organiz
341
342
342
343
To simplify "Data Source Configuration" (`data "terraform_remote_state" "tfstate" { }`) it will be nice to have backend config values as tfvars.
343
344
344
-
`var.tofugu_backend_config` will contain all the parameters from [TofuGu config (backend Section)](#hometofugu)
345
+
`var.tofugu_backend_config` will contain all the parameters from the [config (backend Section)](#hometofugu)
345
346
346
347
[For example, for AWS S3](examples/tofies/demo-org/vpc/data.tf):
347
348
@@ -385,5 +386,5 @@ Do not forget to create the plugin-cache dir: `mkdir "$HOME/.terraform.d/plugin-
385
386
386
387
## License
387
388
388
-
`tofugu` is licensed with Apache License Version 2.0.
389
+
IaCConsole CLI is licensed with Apache License Version 2.0.
0 commit comments