infra-cli 0.1.5__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- infra_cli-0.3.0/MANIFEST.in +24 -0
- infra_cli-0.3.0/PKG-INFO +194 -0
- infra_cli-0.3.0/README.md +126 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/pyproject.toml +41 -2
- infra_cli-0.3.0/setup.py +63 -0
- infra_cli-0.3.0/src/infra/VERSION +5 -0
- infra_cli-0.3.0/src/infra/buildinfo.py +253 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/cli.py +41 -7
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/__init__.py +7 -0
- infra_cli-0.3.0/src/infra/commands/docker.py +65 -0
- infra_cli-0.3.0/src/infra/commands/github.py +103 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/options.py +1 -3
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/setup.py +49 -10
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/context.py +6 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/doctor.py +114 -60
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/cli.py +10 -10
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/landing_zones.py +2 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/profiles_cmd.py +2 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/cli.py +98 -12
- infra_cli-0.3.0/src/infra/plugins/aws/describe_run.py +236 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ec2_cves.py +1967 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ec2_describe.py +179 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ec2_login.py +497 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ec2_tag.py +205 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ec2_volumes.py +369 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ecr_cves.py +1164 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ecr_describe.py +81 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ecs_describe.py +88 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ecs_list_clusters.py +185 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ecs_list_container_instances.py +356 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ecs_list_tasks.py +599 -0
- infra_cli-0.3.0/src/infra/plugins/aws/eks_describe.py +105 -0
- infra_cli-0.3.0/src/infra/plugins/aws/eks_list_clusters.py +199 -0
- infra_cli-0.3.0/src/infra/plugins/aws/eks_nodes.py +191 -0
- infra_cli-0.3.0/src/infra/plugins/aws/elasticache_auth.py +198 -0
- infra_cli-0.3.0/src/infra/plugins/aws/elasticache_describe.py +176 -0
- infra_cli-0.3.0/src/infra/plugins/aws/elasticache_rbac.py +760 -0
- infra_cli-0.3.0/src/infra/plugins/aws/export.py +348 -0
- infra_cli-0.3.0/src/infra/plugins/aws/firewall_describe.py +268 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/common.py +737 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/ec2.py +55 -2
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/ecr_repositories.py +161 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/elasticache.py +125 -19
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/elasticache_usage.py +717 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/firewall.py +561 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/match.py +157 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/msk.py +411 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/opensearch.py +218 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/rds.py +35 -17
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/ssm_parameters.py +135 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/vpc.py +205 -0
- infra_cli-0.3.0/src/infra/plugins/aws/inventory/vpc_network.py +725 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/landing_zones.py +40 -9
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/login.py +77 -8
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/logout.py +4 -4
- infra_cli-0.3.0/src/infra/plugins/aws/msk_describe.py +173 -0
- infra_cli-0.3.0/src/infra/plugins/aws/msk_topics.py +1298 -0
- infra_cli-0.3.0/src/infra/plugins/aws/opensearch_describe.py +136 -0
- infra_cli-0.3.0/src/infra/plugins/aws/options.py +18 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/profiles.py +190 -54
- infra_cli-0.3.0/src/infra/plugins/aws/profiles_cmd.py +258 -0
- infra_cli-0.3.0/src/infra/plugins/aws/rds_describe.py +170 -0
- infra_cli-0.3.0/src/infra/plugins/aws/rds_users.py +1124 -0
- infra_cli-0.3.0/src/infra/plugins/aws/runtime.py +290 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/ec2.py +611 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/services/ecr.py +276 -31
- infra_cli-0.3.0/src/infra/plugins/aws/services/ecs.py +462 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/eks.py +219 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/elasticache.py +346 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/elasticache_access.py +431 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/firewall.py +411 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/msk.py +536 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/opensearch.py +166 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/options.py +413 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/rds.py +180 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/rds_users.py +372 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/ssm.py +888 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/vpc.py +181 -0
- infra_cli-0.3.0/src/infra/plugins/aws/services/vpc_network.py +350 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/ssm_audit.py +89 -33
- infra_cli-0.3.0/src/infra/plugins/aws/ssm_command.py +422 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ssm_copy.py +298 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ssm_describe.py +82 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ssm_document.py +366 -0
- infra_cli-0.3.0/src/infra/plugins/aws/ssm_param.py +403 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/ssm_search.py +8 -9
- infra_cli-0.3.0/src/infra/plugins/aws/sso_discovery.py +398 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/token_info.py +107 -0
- infra_cli-0.3.0/src/infra/plugins/aws/vpc_describe.py +147 -0
- infra_cli-0.3.0/src/infra/plugins/aws/vpc_network_describe.py +153 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/cli.py +40 -14
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/plugin.py +12 -5
- infra_cli-0.3.0/src/infra/plugins/docker_ps.py +80 -0
- infra_cli-0.3.0/src/infra/plugins/github_pr.py +393 -0
- infra_cli-0.3.0/src/infra/plugins/macos/__init__.py +5 -0
- infra_cli-0.3.0/src/infra/plugins/macos/cli.py +152 -0
- infra_cli-0.3.0/src/infra/plugins/macos/debug.py +676 -0
- infra_cli-0.3.0/src/infra/plugins/macos/power.py +193 -0
- infra_cli-0.3.0/src/infra/plugins/naming/__init__.py +7 -0
- infra_cli-0.3.0/src/infra/plugins/naming/cli.py +187 -0
- infra_cli-0.3.0/src/infra/plugins/naming/model.py +304 -0
- infra_cli-0.3.0/src/infra/plugins/naming/scaffold.py +220 -0
- infra_cli-0.3.0/src/infra/plugins/oci/__init__.py +5 -0
- infra_cli-0.3.0/src/infra/plugins/oci/cli.py +386 -0
- infra_cli-0.3.0/src/infra/plugins/oci/compartment_cleanup.py +1789 -0
- infra_cli-0.3.0/src/infra/plugins/oci/compartment_plan.py +861 -0
- infra_cli-0.3.0/src/infra/plugins/oci/landing_zones.py +224 -0
- infra_cli-0.3.0/src/infra/plugins/oci/login.py +256 -0
- infra_cli-0.3.0/src/infra/plugins/oci/logout.py +87 -0
- infra_cli-0.3.0/src/infra/plugins/oci/options.py +172 -0
- infra_cli-0.3.0/src/infra/plugins/oci/profiles.py +104 -0
- infra_cli-0.3.0/src/infra/plugins/oci/profiles_cmd.py +102 -0
- infra_cli-0.3.0/src/infra/plugins/oci/runtime.py +89 -0
- infra_cli-0.3.0/src/infra/plugins/server/__init__.py +32 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/server/app_factory.py +63 -11
- infra_cli-0.3.0/src/infra/plugins/server/cli.py +132 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/__init__.py +13 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/deps.py +79 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/features.py +27 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/http_util.py +89 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/__init__.py +8 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/routes.py +227 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/service.py +340 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mongo/ui.py +288 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mount.py +46 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/__init__.py +8 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/routes.py +383 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/service.py +1391 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/mysql/ui.py +460 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/__init__.py +8 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/routes.py +170 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/service.py +1176 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/redis/ui.py +202 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/session.py +98 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/shell.py +23 -0
- infra_cli-0.3.0/src/infra/plugins/server/dbtools/sql_guard.py +51 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/server/html.py +52 -177
- infra_cli-0.3.0/src/infra/plugins/server/web/__init__.py +6 -0
- infra_cli-0.3.0/src/infra/plugins/server/web/assets.py +146 -0
- infra_cli-0.3.0/src/infra/plugins/server/web/charts.py +31 -0
- infra_cli-0.3.0/src/infra/plugins/server/web/components.py +170 -0
- infra_cli-0.3.0/src/infra/plugins/server/web/db_common.py +219 -0
- infra_cli-0.3.0/src/infra/plugins/server/web/db_page.py +52 -0
- infra_cli-0.3.0/src/infra/plugins/server/web/layout.py +97 -0
- infra_cli-0.3.0/src/infra/plugins/setup/ollama_models.py +172 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/plan.py +66 -13
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/plugin.py +160 -76
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/profiles.py +142 -20
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/verify.py +29 -7
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/cli.py +11 -11
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/landing_zones.py +2 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/login.py +6 -6
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/logout.py +5 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/profiles_cmd.py +2 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/cleanup.py +7 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/plugin.py +104 -77
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/scaffold.py +3 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/paths.py +2 -6
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/plugin.py +2 -11
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/scaffold.py +1 -3
- infra_cli-0.3.0/src/infra/plugins/windows/__init__.py +5 -0
- infra_cli-0.3.0/src/infra/plugins/windows/cli.py +144 -0
- infra_cli-0.3.0/src/infra/plugins/windows/guide.py +466 -0
- infra_cli-0.3.0/src/infra/plugins/windows/power.py +213 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/doctor.py +6 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/redact.py +18 -4
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/resolve.py +1 -3
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/cli.py +3 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/connectors.py +10 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/context_pack.py +4 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/mcp_stdio.py +14 -4
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/planner.py +3 -1
- infra_cli-0.3.0/src/infra/shell/__init__.py +10 -0
- infra_cli-0.3.0/src/infra/shell/builtins.py +336 -0
- infra_cli-0.3.0/src/infra/shell/completer.py +268 -0
- infra_cli-0.3.0/src/infra/shell/context.py +199 -0
- infra_cli-0.3.0/src/infra/shell/pipe.py +139 -0
- infra_cli-0.3.0/src/infra/shell/repl.py +326 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/README.md +20 -5
- infra_cli-0.3.0/src/infra/templates/ansible/.ansible-lint +20 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/callback_plugins/infra_journal.py +6 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/README.md +18 -6
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/defaults/main.yml +36 -3
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/README.md +9 -2
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ai.yml +130 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ai_darwin.yml +54 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ai_debian.yml +70 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/deploy_user_config.yml +4 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/desktop_apps_darwin.yml +19 -10
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/developer.yml +144 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/developer_darwin.yml +17 -2
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/developer_debian.yml +117 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/dnsmasq.yml +41 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/dnsmasq_darwin.yml +5 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/dnsmasq_debian.yml +7 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/docker_darwin.yml +19 -5
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/frontend.yml +214 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/git.yml +70 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/iterm2_darwin.yml +27 -1
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/k8s.yml +202 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/k8s_darwin.yml +1 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/k8s_debian.yml +28 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/kafka.yml +99 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/main.yml +59 -12
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/neteasy.yml +7 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/neteasy_darwin.yml +14 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/neteasy_debian.yml +9 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/oci.yml +19 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/oci_darwin.yml +5 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/oci_debian.yml +27 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ollama.yml +122 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ollama_darwin.yml +11 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/ollama_debian.yml +27 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/openresty.yml +41 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/openresty_darwin.yml +10 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/openresty_debian.yml +84 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/os_setup_darwin.yml +16 -4
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/os_setup_debian.yml +16 -4
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/task.yml +58 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/task_darwin.yml +12 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/tasks/task_debian.yml +27 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/terraform.yml +13 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/templates/ollama-launchagent.plist.j2 +15 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/templates/ollama-launchctl-env.sh.j2 +17 -0
- infra_cli-0.3.0/src/infra/templates/ansible/roles/common/templates/ollama-systemd-override.conf.j2 +14 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/templates/setup_user_env.sh.j2 +70 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/aws/config +4 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/aws/credentials +4 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/aws_sso/config.ini +2 -2
- infra_cli-0.3.0/src/infra/templates/claude/CLAUDE.APP.md +485 -0
- infra_cli-0.3.0/src/infra/templates/claude/CLAUDE.md +166 -0
- infra_cli-0.3.0/src/infra/templates/claude/README.md +34 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/claude/config.json +1 -0
- infra_cli-0.3.0/src/infra/templates/codex/config.toml +9 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/config/config.yml +19 -2
- infra_cli-0.3.0/src/infra/templates/copilot/settings.json +6 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/cursor/settings.json +6 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/desktop/README.md +15 -3
- infra_cli-0.3.0/src/infra/templates/developer/README.md +85 -0
- infra_cli-0.3.0/src/infra/templates/dnsmasq/dnsmasq-local.conf +32 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/docker/config.json.j2 +4 -0
- infra_cli-0.3.0/src/infra/templates/frontend/README.md +83 -0
- infra_cli-0.3.0/src/infra/templates/gemini/config.yaml +11 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/README.md +58 -4
- infra_cli-0.3.0/src/infra/templates/git/cpr.sh +202 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/gitconfig +23 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/ignore +10 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/iterm2/README.md +15 -6
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/iterm2/infra.json +3 -3
- infra_cli-0.3.0/src/infra/templates/k8s/README.md +53 -0
- infra_cli-0.3.0/src/infra/templates/kafka/README.md +123 -0
- infra_cli-0.3.0/src/infra/templates/kafka/conf/client.iam.properties.example +15 -0
- infra_cli-0.3.0/src/infra/templates/kafka/conf/client.plaintext.properties.example +6 -0
- infra_cli-0.3.0/src/infra/templates/kafka/conf/client.scram.properties.example +14 -0
- infra_cli-0.3.0/src/infra/templates/kafka/conf/client.ssl.properties.example +12 -0
- infra_cli-0.3.0/src/infra/templates/kafka/kafka +490 -0
- infra_cli-0.3.0/src/infra/templates/mongodb/README.md +13 -0
- infra_cli-0.3.0/src/infra/templates/mongodb/mongod-local.conf +84 -0
- infra_cli-0.3.0/src/infra/templates/mongodb/mongoshrc.js +19 -0
- infra_cli-0.3.0/src/infra/templates/mysql/README.md +16 -0
- infra_cli-0.3.0/src/infra/templates/mysql/my.cnf +54 -0
- infra_cli-0.3.0/src/infra/templates/mysql/mysqld-local.cnf +74 -0
- infra_cli-0.3.0/src/infra/templates/naming/README.md +22 -0
- infra_cli-0.3.0/src/infra/templates/nginx/README.md +9 -0
- infra_cli-0.3.0/src/infra/templates/nginx/nginx-local.conf +73 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/nvim/init.lua +7 -1
- infra_cli-0.3.0/src/infra/templates/ollama/README.md +81 -0
- infra_cli-0.3.0/src/infra/templates/openresty/openresty-local.conf +82 -0
- infra_cli-0.3.0/src/infra/templates/python/README.md +45 -0
- infra_cli-0.3.0/src/infra/templates/redis/README.md +14 -0
- infra_cli-0.3.0/src/infra/templates/redis/redis-local.conf +82 -0
- infra_cli-0.3.0/src/infra/templates/redis/redisclirc +19 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/README.md +121 -18
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/setup.overlay.example.yml +13 -3
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/shell/aliases.sh +14 -4
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ssh/README.md +24 -0
- infra_cli-0.3.0/src/infra/templates/ssh/conf.d/1password.conf +20 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ssh/conf.d/github.conf +4 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ssh/config +3 -4
- infra_cli-0.3.0/src/infra/templates/task/README.md +58 -0
- infra_cli-0.3.0/src/infra/templates/task/Taskfile.yml +19 -0
- infra_cli-0.3.0/src/infra/templates/terraform/.terraform-docs.yml +75 -0
- infra_cli-0.3.0/src/infra/templates/terraform/README.md +51 -0
- infra_cli-0.3.0/src/infra/templates/terraform/repo/terraform/.gitignore +14 -0
- infra_cli-0.3.0/src/infra/templates/terraform/terraform.env +54 -0
- infra_cli-0.3.0/src/infra/templates/terraform/terraformrc +144 -0
- infra_cli-0.3.0/src/infra/templates/terragrunt/terragrunt.env +52 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/tmux/tmux.conf +6 -2
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/vim/vimrc +2 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/vscode/settings.json +6 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/inventory-snapshot.yml +3 -1
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/aws.py +18 -6
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/__init__.py +4 -0
- infra_cli-0.3.0/src/infra/utils/best_practices/naming.py +20 -0
- infra_cli-0.3.0/src/infra/utils/best_practices/task.py +203 -0
- infra_cli-0.3.0/src/infra/utils/catalog.py +64 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/config.py +203 -2
- infra_cli-0.3.0/src/infra/utils/duration.py +22 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/fmt.py +4 -3
- infra_cli-0.3.0/src/infra/utils/naming.py +306 -0
- infra_cli-0.3.0/src/infra/utils/ui.py +209 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/ui_select.py +159 -11
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra_cli.egg-info/SOURCES.txt +177 -13
- infra_cli-0.1.5/PKG-INFO +0 -452
- infra_cli-0.1.5/README.md +0 -403
- infra_cli-0.1.5/src/infra/commands/github.py +0 -48
- infra_cli-0.1.5/src/infra/plugins/aws/export.py +0 -116
- infra_cli-0.1.5/src/infra/plugins/aws/inventory/common.py +0 -273
- infra_cli-0.1.5/src/infra/plugins/aws/profiles_cmd.py +0 -127
- infra_cli-0.1.5/src/infra/plugins/aws/runtime.py +0 -25
- infra_cli-0.1.5/src/infra/plugins/aws/services/ec2.py +0 -88
- infra_cli-0.1.5/src/infra/plugins/aws/services/elasticache.py +0 -91
- infra_cli-0.1.5/src/infra/plugins/aws/services/options.py +0 -114
- infra_cli-0.1.5/src/infra/plugins/aws/services/rds.py +0 -76
- infra_cli-0.1.5/src/infra/plugins/aws/services/ssm.py +0 -195
- infra_cli-0.1.5/src/infra/plugins/aws/sso_discovery.py +0 -197
- infra_cli-0.1.5/src/infra/plugins/server/__init__.py +0 -27
- infra_cli-0.1.5/src/infra/plugins/server/cli.py +0 -83
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/ai.yml +0 -50
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/ai_darwin.yml +0 -19
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/developer.yml +0 -116
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/developer_debian.yml +0 -42
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s.yml +0 -9
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s_ops.yml +0 -9
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s_ops_darwin.yml +0 -7
- infra_cli-0.1.5/src/infra/templates/ansible/roles/common/tasks/k8s_ops_debian.yml +0 -22
- infra_cli-0.1.5/src/infra/templates/codex/config.json +0 -6
- infra_cli-0.1.5/src/infra/templates/developer/README.md +0 -75
- infra_cli-0.1.5/src/infra/templates/gemini/config.yaml +0 -5
- infra_cli-0.1.5/src/infra/templates/python/README.md +0 -26
- infra_cli-0.1.5/src/infra/templates/redis/redisclirc +0 -8
- infra_cli-0.1.5/src/infra/templates/terraform/terraform.env +0 -7
- infra_cli-0.1.5/src/infra/templates/terraform/terraformrc +0 -6
- infra_cli-0.1.5/src/infra/templates/terragrunt/terragrunt.env +0 -22
- infra_cli-0.1.5/src/infra/utils/naming.py +0 -64
- infra_cli-0.1.5/src/infra/utils/ui.py +0 -103
- infra_cli-0.1.5/src/infra_cli.egg-info/PKG-INFO +0 -452
- infra_cli-0.1.5/src/infra_cli.egg-info/dependency_links.txt +0 -1
- infra_cli-0.1.5/src/infra_cli.egg-info/entry_points.txt +0 -2
- infra_cli-0.1.5/src/infra_cli.egg-info/requires.txt +0 -33
- infra_cli-0.1.5/src/infra_cli.egg-info/top_level.txt +0 -1
- infra_cli-0.1.5/tests/test_cli.py +0 -142
- infra_cli-0.1.5/tests/test_doctor.py +0 -93
- {infra_cli-0.1.5 → infra_cli-0.3.0}/LICENSE +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/setup.cfg +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/__main__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/ansible.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/config_cmds.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/packer.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/slack.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/terraform.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/commands/terragrunt.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/execute.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/login.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/options.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/profiles.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/runtime.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/alibaba/site.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/ansible.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/inventory/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/services/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/aws/services/cost.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/base.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/config.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/actions.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/cost/models.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/cache.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/cli.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/eol/render.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/github.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/packer.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/cli_upgrade.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/setup/journal.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/slack.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/options.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/profiles.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/runtime.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/tencent/site.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/args.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terraform/paths.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/terragrunt/args.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/audit.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/client.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/models.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/registry.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/sources.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/ai/url_safety.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/explain.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/models.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/runner.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/plugins/work/skills.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/ansible.cfg +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/callback_plugins/infra_minimal.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/inventory.ini +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/requirements.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/meta/main.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aliyun.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aliyun_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aliyun_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aws.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aws_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/aws_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/cli_ux.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/cli_ux_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/cli_ux_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/db_clients.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/db_clients_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/db_clients_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/desktop_apps.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/desktop_apps_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/docker.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/docker_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/download_url.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fetch_uri.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fzf.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fzf_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/fzf_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/git_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/git_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/gpg.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/gpg_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/gpg_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/http_clients.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/install_github_tarball.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/iterm2.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/iterm2_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/java.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/java_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/java_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/kind.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/kind_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/kind_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/linux_tune.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/linux_tune_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/merge_editor_settings.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/micromamba.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/micromamba_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/micromamba_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/minikube.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/minikube_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/minikube_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/mise.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/mise_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/mise_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/neovim.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/neovim_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/neovim_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/packer.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/packer_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/packer_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/python.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/python_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/qa.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/qa_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/qa_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/resolve_github_latest.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ssh.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ssh_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/ssh_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/sshd_tune.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/sshd_tune_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/supply_chain.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/supply_chain_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/supply_chain_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tccli.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/terraform_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/terraform_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tmux.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tmux_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/tmux_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/trivy.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/trivy_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/trivy_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/vim.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/vim_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/vim_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/zsh.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/zsh_darwin.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/tasks/zsh_debian.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/roles/common/templates/mise.toml.j2 +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/setup.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ansible/vars.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/bat/config +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/config/pypirc +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/curl/curlrc +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/direnv/direnv.toml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/direnv/envrc.example +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/docker/config.json +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/editorconfig/editorconfig +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/gh/config.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/attributes +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/mailmap +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/git/message +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/github/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/gpg/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/mamba/mambarc +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/packer/packer.pkrvars.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/python/pypirc +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/ripgrep/config +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/setup.conf +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/setup/setup.team.overlay.example.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/shell/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/modules/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/main.tf +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/outputs.tf +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/variables.tf +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terraform/repo/terraform/sites/stg/platform/example/versions.tf +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/_envcommon/stack.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/account.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/env.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/leaf/terragrunt.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/region.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/root.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/repo/terragrunt.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/terragrunt/terragrunt.hcl +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/tmux/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/wget/wgetrc +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/README.md +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/cost-review.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/eol-scan.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/iac-plan-check.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/security-pass.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/templates/work/skills/workstation-health.yml +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/__init__.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/backoff.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/ansible.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/aws.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/ci.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/docker.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/models.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/packer.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/terraform.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/best_practices/terragrunt.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/docker.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/env.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/logger.py +0 -0
- {infra_cli-0.1.5 → infra_cli-0.3.0}/src/infra/utils/stack_paths.py +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Allowlist. Setuptools starts from every git-tracked file; drop that list,
|
|
2
|
+
# then add only what `pip install` of the sdist needs. The wheel is the
|
|
3
|
+
# `infra` package under src/ (see pyproject package-data).
|
|
4
|
+
global-exclude *
|
|
5
|
+
|
|
6
|
+
recursive-include src/infra *.py
|
|
7
|
+
recursive-include src/infra/templates *
|
|
8
|
+
include src/infra/VERSION
|
|
9
|
+
include src/infra/templates/ansible/.ansible-lint
|
|
10
|
+
include src/infra/templates/terraform/.terraform-docs.yml
|
|
11
|
+
include src/infra/templates/terraform/repo/terraform/.gitignore
|
|
12
|
+
|
|
13
|
+
include pyproject.toml
|
|
14
|
+
include setup.py
|
|
15
|
+
include README.md
|
|
16
|
+
include LICENSE
|
|
17
|
+
include MANIFEST.in
|
|
18
|
+
|
|
19
|
+
# Local Ansible cache under the template tree (gitignored, still on disk).
|
|
20
|
+
prune src/infra/templates/ansible/.ansible
|
|
21
|
+
global-exclude *.py[cod]
|
|
22
|
+
global-exclude .DS_Store
|
|
23
|
+
recursive-exclude src/infra __pycache__
|
|
24
|
+
recursive-exclude src/infra *.py[cod]
|
infra_cli-0.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: infra-cli
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Pluggable Infrastructure CLI as a wrapper around DevOps tools.
|
|
5
|
+
Author-email: Youqing Han <ihanyouqing@gmail.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/hanyouqing/infra-cli
|
|
8
|
+
Project-URL: Repository, https://github.com/hanyouqing/infra-cli
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/hanyouqing/infra-cli/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/hanyouqing/infra-cli/blob/main/CHANGELOG.md
|
|
11
|
+
Project-URL: Author, https://github.com/hanyouqing
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
15
|
+
Classifier: Topic :: System :: Systems Administration
|
|
16
|
+
Requires-Python: >=3.10
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
Requires-Dist: typer>=0.9.0
|
|
20
|
+
Requires-Dist: typing-extensions>=4.0.0
|
|
21
|
+
Requires-Dist: PyYAML>=6.0
|
|
22
|
+
Requires-Dist: boto3>=1.20.0
|
|
23
|
+
Requires-Dist: rich>=10.0.0
|
|
24
|
+
Requires-Dist: questionary>=2.0.0
|
|
25
|
+
Requires-Dist: prompt_toolkit>=3.0.0
|
|
26
|
+
Requires-Dist: requests>=2.28.0
|
|
27
|
+
Provides-Extra: aws
|
|
28
|
+
Requires-Dist: zxcvbn>=4.4.28; extra == "aws"
|
|
29
|
+
Requires-Dist: openpyxl>=3.1.0; extra == "aws"
|
|
30
|
+
Requires-Dist: PyMySQL>=1.1.0; extra == "aws"
|
|
31
|
+
Requires-Dist: pg8000>=1.31.0; extra == "aws"
|
|
32
|
+
Provides-Extra: server
|
|
33
|
+
Requires-Dist: fastapi>=0.100.0; extra == "server"
|
|
34
|
+
Requires-Dist: uvicorn>=0.20.0; extra == "server"
|
|
35
|
+
Requires-Dist: markdown>=3.4.0; extra == "server"
|
|
36
|
+
Provides-Extra: server-mysql
|
|
37
|
+
Requires-Dist: fastapi>=0.100.0; extra == "server-mysql"
|
|
38
|
+
Requires-Dist: uvicorn>=0.20.0; extra == "server-mysql"
|
|
39
|
+
Requires-Dist: markdown>=3.4.0; extra == "server-mysql"
|
|
40
|
+
Requires-Dist: PyMySQL>=1.1.0; extra == "server-mysql"
|
|
41
|
+
Provides-Extra: server-redis
|
|
42
|
+
Requires-Dist: fastapi>=0.100.0; extra == "server-redis"
|
|
43
|
+
Requires-Dist: uvicorn>=0.20.0; extra == "server-redis"
|
|
44
|
+
Requires-Dist: markdown>=3.4.0; extra == "server-redis"
|
|
45
|
+
Requires-Dist: redis>=5.0.0; extra == "server-redis"
|
|
46
|
+
Requires-Dist: certifi>=2023.0.0; extra == "server-redis"
|
|
47
|
+
Provides-Extra: server-mongo
|
|
48
|
+
Requires-Dist: fastapi>=0.100.0; extra == "server-mongo"
|
|
49
|
+
Requires-Dist: uvicorn>=0.20.0; extra == "server-mongo"
|
|
50
|
+
Requires-Dist: markdown>=3.4.0; extra == "server-mongo"
|
|
51
|
+
Requires-Dist: pymongo>=4.6.0; extra == "server-mongo"
|
|
52
|
+
Provides-Extra: test
|
|
53
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
54
|
+
Requires-Dist: pytest-mock>=3.6.1; extra == "test"
|
|
55
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
|
56
|
+
Requires-Dist: httpx>=0.27.0; extra == "test"
|
|
57
|
+
Provides-Extra: dev
|
|
58
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
59
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
60
|
+
Requires-Dist: types-PyYAML; extra == "dev"
|
|
61
|
+
Requires-Dist: types-setuptools; extra == "dev"
|
|
62
|
+
Requires-Dist: boto3-stubs[essential]; extra == "dev"
|
|
63
|
+
Requires-Dist: ansible-core>=2.16.0; extra == "dev"
|
|
64
|
+
Requires-Dist: ansible-lint>=24.0.0; extra == "dev"
|
|
65
|
+
Requires-Dist: build>=1.0.0; extra == "dev"
|
|
66
|
+
Requires-Dist: twine>=5.0.0; extra == "dev"
|
|
67
|
+
Dynamic: license-file
|
|
68
|
+
|
|
69
|
+
# infra-cli
|
|
70
|
+
|
|
71
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
72
|
+
[](https://www.python.org/downloads/)
|
|
73
|
+
|
|
74
|
+

|
|
75
|
+
|
|
76
|
+
Pluggable DevOps CLI wrapping Ansible, Terragrunt, Terraform, AWS SSO, Alibaba / Tencent CloudSSO, OCI session login, and related tools.
|
|
77
|
+
|
|
78
|
+
## Features
|
|
79
|
+
|
|
80
|
+
- Unified `infra` surface for setup, cloud SSO, inventory, and IaC wrappers
|
|
81
|
+
- Interactive REPL: `infra shell` (Tab completion, history, pipes, prod guard)
|
|
82
|
+
- Agent work mode: `infra work` (skills, connectors, MCP)
|
|
83
|
+
- Local HTML command reference: `infra server start` (optional MySQL/Redis/Mongo DB tools)
|
|
84
|
+
|
|
85
|
+
## Install
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
pipx install infra-cli
|
|
89
|
+
pipx inject infra-cli '.[aws]' # optional
|
|
90
|
+
source ~/.infra/env.sh # after first run, or: pipx ensurepath
|
|
91
|
+
infra doctor
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
From checkout: `pipx install .` · Upgrade: `infra setup upgrade-cli --pypi`
|
|
95
|
+
Full macOS/Linux bootstrap: [INSTALL.md](INSTALL.md) · [docs/installation.md](docs/installation.md)
|
|
96
|
+
Docker (host network): [docs/docker.md](docs/docker.md) · `docker compose up`
|
|
97
|
+
|
|
98
|
+
## Quick start
|
|
99
|
+
|
|
100
|
+
### setup
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
infra setup doctor
|
|
104
|
+
infra setup aws
|
|
105
|
+
infra setup terraform
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### aws
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
infra aws login
|
|
112
|
+
infra aws select
|
|
113
|
+
infra aws profiles --account
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### naming
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
infra naming payments --org acme --domain acme.io
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### terraform / terragrunt
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
infra terraform -e stg -s platform/example
|
|
126
|
+
infra terragrunt plan -e stg -s platform/example
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### shell
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
infra shell
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### server
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
infra server start # needs: pipx inject infra-cli '.[server]'
|
|
139
|
+
infra server start --enable-mysql --enable-redis # + '.[server-mysql]' / '.[server-redis]'
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
DB tools open at `/tools`; connect forms keep credentials in process memory only.
|
|
143
|
+
Mutations need `--enable-writes`. Non-loopback bind with DB tools requires `--allow-remote`.
|
|
144
|
+
|
|
145
|
+
### work
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
infra work plan "find AWS cost waste"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### doctor
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
infra doctor
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Every command accepts `-h` / `--help`.
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
| Guide | Contents |
|
|
162
|
+
| --- | --- |
|
|
163
|
+
| [docs/](docs/README.md) | Index of all user guides |
|
|
164
|
+
| [commands.md](docs/commands.md) | Common workflows |
|
|
165
|
+
| [docker.md](docs/docker.md) | Dockerfile / Compose (host network) |
|
|
166
|
+
| [aws.md](docs/aws.md) | SSO, inventory, ECR, SSM |
|
|
167
|
+
| [setup.md](docs/setup.md) | Workstation bootstrap |
|
|
168
|
+
| [alibaba-cloud.md](docs/alibaba-cloud.md) | `aliyun` / `alicloud` |
|
|
169
|
+
| [oci.md](docs/oci.md) | `infra setup oci` / `infra oci login` |
|
|
170
|
+
| [terraform-terragrunt.md](docs/terraform-terragrunt.md) | Layout, scaffold, plan/apply |
|
|
171
|
+
| [work.md](docs/work.md) | Agent work mode |
|
|
172
|
+
| [configuration.md](docs/configuration.md) | `~/.infra/config.yaml` |
|
|
173
|
+
| [release.md](docs/release.md) | PyPI tags & Trusted Publishing |
|
|
174
|
+
| [development.md](docs/development.md) | Local tests & lint |
|
|
175
|
+
| [CHANGELOG.md](CHANGELOG.md) | Release history |
|
|
176
|
+
| [Logo](docs/assets/logo/README.md) | Brand marks (SVG) |
|
|
177
|
+
|
|
178
|
+
## Development
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
make install-dev
|
|
182
|
+
make test
|
|
183
|
+
make check
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
187
|
+
|
|
188
|
+
## Author & Contact
|
|
189
|
+
|
|
190
|
+
Youqing Han — [GitHub](https://github.com/hanyouqing) · Issues for public bugs; email for private / CoC / partnership contact (see `pyproject.toml`).
|
|
191
|
+
|
|
192
|
+
## License
|
|
193
|
+
|
|
194
|
+
Apache License 2.0 — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# infra-cli
|
|
2
|
+
|
|
3
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
4
|
+
[](https://www.python.org/downloads/)
|
|
5
|
+
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
Pluggable DevOps CLI wrapping Ansible, Terragrunt, Terraform, AWS SSO, Alibaba / Tencent CloudSSO, OCI session login, and related tools.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- Unified `infra` surface for setup, cloud SSO, inventory, and IaC wrappers
|
|
13
|
+
- Interactive REPL: `infra shell` (Tab completion, history, pipes, prod guard)
|
|
14
|
+
- Agent work mode: `infra work` (skills, connectors, MCP)
|
|
15
|
+
- Local HTML command reference: `infra server start` (optional MySQL/Redis/Mongo DB tools)
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pipx install infra-cli
|
|
21
|
+
pipx inject infra-cli '.[aws]' # optional
|
|
22
|
+
source ~/.infra/env.sh # after first run, or: pipx ensurepath
|
|
23
|
+
infra doctor
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
From checkout: `pipx install .` · Upgrade: `infra setup upgrade-cli --pypi`
|
|
27
|
+
Full macOS/Linux bootstrap: [INSTALL.md](INSTALL.md) · [docs/installation.md](docs/installation.md)
|
|
28
|
+
Docker (host network): [docs/docker.md](docs/docker.md) · `docker compose up`
|
|
29
|
+
|
|
30
|
+
## Quick start
|
|
31
|
+
|
|
32
|
+
### setup
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
infra setup doctor
|
|
36
|
+
infra setup aws
|
|
37
|
+
infra setup terraform
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### aws
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
infra aws login
|
|
44
|
+
infra aws select
|
|
45
|
+
infra aws profiles --account
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### naming
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
infra naming payments --org acme --domain acme.io
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### terraform / terragrunt
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
infra terraform -e stg -s platform/example
|
|
58
|
+
infra terragrunt plan -e stg -s platform/example
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### shell
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
infra shell
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### server
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
infra server start # needs: pipx inject infra-cli '.[server]'
|
|
71
|
+
infra server start --enable-mysql --enable-redis # + '.[server-mysql]' / '.[server-redis]'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
DB tools open at `/tools`; connect forms keep credentials in process memory only.
|
|
75
|
+
Mutations need `--enable-writes`. Non-loopback bind with DB tools requires `--allow-remote`.
|
|
76
|
+
|
|
77
|
+
### work
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
infra work plan "find AWS cost waste"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### doctor
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
infra doctor
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Every command accepts `-h` / `--help`.
|
|
90
|
+
|
|
91
|
+
## Documentation
|
|
92
|
+
|
|
93
|
+
| Guide | Contents |
|
|
94
|
+
| --- | --- |
|
|
95
|
+
| [docs/](docs/README.md) | Index of all user guides |
|
|
96
|
+
| [commands.md](docs/commands.md) | Common workflows |
|
|
97
|
+
| [docker.md](docs/docker.md) | Dockerfile / Compose (host network) |
|
|
98
|
+
| [aws.md](docs/aws.md) | SSO, inventory, ECR, SSM |
|
|
99
|
+
| [setup.md](docs/setup.md) | Workstation bootstrap |
|
|
100
|
+
| [alibaba-cloud.md](docs/alibaba-cloud.md) | `aliyun` / `alicloud` |
|
|
101
|
+
| [oci.md](docs/oci.md) | `infra setup oci` / `infra oci login` |
|
|
102
|
+
| [terraform-terragrunt.md](docs/terraform-terragrunt.md) | Layout, scaffold, plan/apply |
|
|
103
|
+
| [work.md](docs/work.md) | Agent work mode |
|
|
104
|
+
| [configuration.md](docs/configuration.md) | `~/.infra/config.yaml` |
|
|
105
|
+
| [release.md](docs/release.md) | PyPI tags & Trusted Publishing |
|
|
106
|
+
| [development.md](docs/development.md) | Local tests & lint |
|
|
107
|
+
| [CHANGELOG.md](CHANGELOG.md) | Release history |
|
|
108
|
+
| [Logo](docs/assets/logo/README.md) | Brand marks (SVG) |
|
|
109
|
+
|
|
110
|
+
## Development
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
make install-dev
|
|
114
|
+
make test
|
|
115
|
+
make check
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
119
|
+
|
|
120
|
+
## Author & Contact
|
|
121
|
+
|
|
122
|
+
Youqing Han — [GitHub](https://github.com/hanyouqing) · Issues for public bugs; email for private / CoC / partnership contact (see `pyproject.toml`).
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
Apache License 2.0 — see [LICENSE](LICENSE).
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "infra-cli"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.0"
|
|
8
8
|
description = "Pluggable Infrastructure CLI as a wrapper around DevOps tools."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -25,6 +25,7 @@ dependencies = [
|
|
|
25
25
|
"boto3>=1.20.0",
|
|
26
26
|
"rich>=10.0.0",
|
|
27
27
|
"questionary>=2.0.0",
|
|
28
|
+
"prompt_toolkit>=3.0.0",
|
|
28
29
|
"requests>=2.28.0",
|
|
29
30
|
]
|
|
30
31
|
|
|
@@ -39,12 +40,33 @@ dependencies = [
|
|
|
39
40
|
aws = [
|
|
40
41
|
"zxcvbn>=4.4.28",
|
|
41
42
|
"openpyxl>=3.1.0",
|
|
43
|
+
"PyMySQL>=1.1.0",
|
|
44
|
+
"pg8000>=1.31.0",
|
|
42
45
|
]
|
|
43
46
|
server = [
|
|
44
47
|
"fastapi>=0.100.0",
|
|
45
48
|
"uvicorn>=0.20.0",
|
|
46
49
|
"markdown>=3.4.0",
|
|
47
50
|
]
|
|
51
|
+
server-mysql = [
|
|
52
|
+
"fastapi>=0.100.0",
|
|
53
|
+
"uvicorn>=0.20.0",
|
|
54
|
+
"markdown>=3.4.0",
|
|
55
|
+
"PyMySQL>=1.1.0",
|
|
56
|
+
]
|
|
57
|
+
server-redis = [
|
|
58
|
+
"fastapi>=0.100.0",
|
|
59
|
+
"uvicorn>=0.20.0",
|
|
60
|
+
"markdown>=3.4.0",
|
|
61
|
+
"redis>=5.0.0",
|
|
62
|
+
"certifi>=2023.0.0",
|
|
63
|
+
]
|
|
64
|
+
server-mongo = [
|
|
65
|
+
"fastapi>=0.100.0",
|
|
66
|
+
"uvicorn>=0.20.0",
|
|
67
|
+
"markdown>=3.4.0",
|
|
68
|
+
"pymongo>=4.6.0",
|
|
69
|
+
]
|
|
48
70
|
test = [
|
|
49
71
|
"pytest>=7.0.0",
|
|
50
72
|
"pytest-mock>=3.6.1",
|
|
@@ -68,9 +90,18 @@ infra = "infra.cli:run"
|
|
|
68
90
|
|
|
69
91
|
[tool.setuptools.packages.find]
|
|
70
92
|
where = ["src"]
|
|
93
|
+
include = ["infra*"]
|
|
71
94
|
|
|
72
95
|
[tool.setuptools.package-data]
|
|
73
|
-
infra = ["templates/**/*"]
|
|
96
|
+
infra = ["templates/**/*", "VERSION"]
|
|
97
|
+
|
|
98
|
+
[tool.setuptools.exclude-package-data]
|
|
99
|
+
infra = [
|
|
100
|
+
"templates/ansible/.ansible/**",
|
|
101
|
+
"**/__pycache__/**",
|
|
102
|
+
"**/*.py[cod]",
|
|
103
|
+
"**/.DS_Store",
|
|
104
|
+
]
|
|
74
105
|
|
|
75
106
|
[tool.ruff]
|
|
76
107
|
line-length = 88
|
|
@@ -108,3 +139,11 @@ module = "infra.*"
|
|
|
108
139
|
disallow_untyped_defs = true
|
|
109
140
|
disallow_incomplete_defs = true
|
|
110
141
|
check_untyped_defs = true
|
|
142
|
+
|
|
143
|
+
[[tool.mypy.overrides]]
|
|
144
|
+
module = [
|
|
145
|
+
"infra.plugins.server.dbtools.mysql.service",
|
|
146
|
+
"infra.plugins.server.dbtools.redis.service",
|
|
147
|
+
]
|
|
148
|
+
disallow_untyped_defs = false
|
|
149
|
+
disallow_incomplete_defs = false
|
infra_cli-0.3.0/setup.py
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"""Write src/infra/VERSION during sdist / wheel / editable builds."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from setuptools import setup
|
|
9
|
+
from setuptools.command.build_py import build_py
|
|
10
|
+
from setuptools.command.egg_info import egg_info
|
|
11
|
+
from setuptools.command.sdist import sdist
|
|
12
|
+
|
|
13
|
+
ROOT = Path(__file__).resolve().parent
|
|
14
|
+
SRC = ROOT / "src"
|
|
15
|
+
if str(SRC) not in sys.path:
|
|
16
|
+
sys.path.insert(0, str(SRC))
|
|
17
|
+
|
|
18
|
+
from infra.buildinfo import write_packaged_version # noqa: E402
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _write_version() -> None:
|
|
22
|
+
write_packaged_version(SRC / "infra" / "VERSION")
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class BuildPyVersion(build_py):
|
|
26
|
+
def run(self) -> None:
|
|
27
|
+
_write_version()
|
|
28
|
+
super().run()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class SdistVersion(sdist):
|
|
32
|
+
def run(self) -> None:
|
|
33
|
+
_write_version()
|
|
34
|
+
super().run()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class EggInfoVersion(egg_info):
|
|
38
|
+
def run(self) -> None:
|
|
39
|
+
_write_version()
|
|
40
|
+
super().run()
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
_CMDCLASS = {
|
|
44
|
+
"build_py": BuildPyVersion,
|
|
45
|
+
"sdist": SdistVersion,
|
|
46
|
+
"egg_info": EggInfoVersion,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
try:
|
|
50
|
+
from setuptools.command.editable_wheel import editable_wheel
|
|
51
|
+
except ImportError:
|
|
52
|
+
pass
|
|
53
|
+
else:
|
|
54
|
+
|
|
55
|
+
class EditableWheelVersion(editable_wheel):
|
|
56
|
+
def run(self) -> None:
|
|
57
|
+
_write_version()
|
|
58
|
+
super().run()
|
|
59
|
+
|
|
60
|
+
_CMDCLASS["editable_wheel"] = EditableWheelVersion
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
setup(cmdclass=_CMDCLASS)
|