MCPcopy Index your code
hub / github.com/dragondrop-cloud/cloud-concierge

github.com/dragondrop-cloud/cloud-concierge @v0.2.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.5 ↗ · + Follow
800 symbols 2,181 edges 175 files 567 documented · 71%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

cloud-concierge

Example Output | Docs

Why cloud-concierge?

cloud-concierge is a container that integrates with your existing Terraform management set up. All results and codified resources are output via a digestible Pull Request to a repository of your choice, providing you with a "State of Cloud" report in a GitOps manner. It provides: - ✅ Cloud codification, identify un-managed resources and generate corresponding Terraform code and import statements/import blocks

  • ✅ Drift detection

  • ✅ Flag accounts creating changes outside your Terraform workflow

  • ✅ Whole-cloud cost estimation, powered by Infracost

  • ✅ Whole-cloud security scanning, powered by tfsec

Quick Start

All Cloud Provider Pre-requisites

1) Configure an environment variable file (use one of our templates to get started) to control the specifics of cloud-concierge's coverage. 2) Run docker pull dragondropcloud/cloud-concierge:latest to pull the latest image.

AWS Quickstart

I) Run aws configure on your CLI and ensure that credentials with read-only access to your cloud are configured. If referencing state files stored in an s3 bucket, the credentials specified should be able to read those state files as well.

II) Run the cloud-concierge container using the following command: docker run --env-file ./my-env-file.env -v main:/main -v ~/.aws:/main/credentials/aws:ro -w /main dragondropcloud/cloud-concierge:latest

If running on Windows, the substitute $HOME/.aws: for ~/.aws: in the above command.

III) Check the Pull Request that has been created by cloud-concierge (example output).

Azure & GCP Quickstart

See more here.

How does it work?

1) cloud-concierge creates a representation of your cloud infrastructure as Terraform. Only read-only access should be given to cloud-concierge. 2) This representation is compared against your state files to detect drift, and identify resources outside of Terraform control. 3) Static security scans and cost estimation is performed on the Terraform representation. 4) Results and code are summarized in a Pull Request within the repository of your choice.

NLP Engine

Usage of cloud-concierge is not tracked. To maintain a slimmer final docker image we host the NLP model that recommends new Terraform resources to match with state files in a Python-based Google Cloud Function.

This modelling code does not log any of the anonymized data sent to it, and is stored within this repository here.

Contributing

Contributions in any form are highly encouraged. Check out our contributing guide to get started.

Resources

Star History

Star History Chart

Extension points exported contracts — how you extend this code

TerraformerExecutor (Interface)
TerraformerExecutor is an interface for getting the current state of an external cloud by programmatically running terra [21 …
main/internal/interfaces/terraformer_executor.go
IdentifyCloudActors (Interface)
IdentifyCloudActors is an interface for identifying the cloud actors that have made changes to identified drifted resour [21 …
main/internal/interfaces/identify_cloud_actors.go
ResourcesWriter (Interface)
ResourcesWriter is an interface for writing Terraform resource information to a version control system. [21 implementers]
main/internal/interfaces/resources_writer.go
ResourcesCalculator (Interface)
ResourcesCalculator is the interface for determining the workspace/state file where different cloud resources should liv [21 …
main/internal/interfaces/resources_calculator.go
TerraformImportMigrationGenerator (Interface)
TerraformImportMigrationGenerator is an interface for generating terraform state migration import statements. [21 implementers]
main/internal/interfaces/terraform_import_migration_generator.go

Core symbols most depended-on inside this repo

Run
called by 31
main/job.go
stringToWords
called by 20
main/internal/documentize/string_to_words.go
NewMarkdownCreator
called by 14
main/internal/implementations/markdowncreation/markdown_creator.go
Instantiate
called by 13
main/internal/implementations/vcs/factory.go
determineActionClass
called by 8
main/internal/implementations/identify_cloud_actors/log_querier.go
outFileCloser
called by 7
main/internal/implementations/terraform_workspace/search_repo_workspaces.go
Execute
called by 7
main/internal/interfaces/cost_estimation.go
getValidRegions
called by 6
main/internal/implementations/terraformer_executor/terraformer_cli/cloud_regions.go

Shape

Function 303
Method 292
Struct 139
TypeAlias 49
Interface 17

Languages

Go98%
Python2%

Modules by API surface

main/internal/hclcreate/hcl_create.go20 symbols
main/internal/interfaces/vcs.go18 symbols
main/internal/implementations/identify_cloud_actors/google_log_querier.go16 symbols
main/internal/documentize/documentize.go16 symbols
main/internal/implementations/terraform_workspace/terraform_cloud.go15 symbols
main/job_test.go14 symbols
main/job_config_inferred.go13 symbols
main/internal/implementations/terraform_security/tfsec.go13 symbols
main/internal/implementations/resources_calculator/terraform_resources_calculator.go13 symbols
nlpengine/main.py12 symbols
main/job_config.go12 symbols
main/internal/implementations/vcs/github.go12 symbols

For agents

$ claude mcp add cloud-concierge \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact