ic-code 1.0.2__tar.gz → 1.0.5__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.
- ic_code-1.0.5/PKG-INFO +879 -0
- ic_code-1.0.5/README.md +821 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/cloudfront/info.py +10 -25
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/codepipeline/build.py +42 -20
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/codepipeline/deploy.py +42 -20
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ec2/info.py +53 -15
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ecs/info.py +42 -20
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/addons.py +3 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/fargate.py +3 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/info.py +3 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/nodes.py +3 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/pods.py +5 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/update_config.py +4 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/fargate/info.py +53 -29
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/lb/info.py +34 -8
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/msk/info.py +42 -20
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/nat/list_tags.py +37 -20
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/nat/tag_check.py +40 -23
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/profile/info.py +1 -1
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/rds/info.py +35 -8
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/s3/info.py +34 -7
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/sg/info.py +26 -11
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/vpc/info.py +34 -8
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/vpn/info.py +34 -8
- {ic_code-1.0.2 → ic_code-1.0.5}/cf/dns/list_info.py +74 -46
- ic_code-1.0.5/common/__init__.py +44 -0
- ic_code-1.0.5/common/progress_decorator.py +476 -0
- ic_code-1.0.5/docs/dependency_management.md +281 -0
- ic_code-1.0.5/oci_module/compartment/info.py +229 -0
- ic_code-1.0.5/oci_module/cost/credit.py +156 -0
- ic_code-1.0.5/oci_module/cost/usage.py +146 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/lb/info.py +4 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/nsg/info.py +4 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/obj/info.py +21 -8
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/policy/info.py +25 -12
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/policy/search.py +53 -40
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/vcn/info.py +4 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/vm/info.py +66 -29
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/volume/info.py +21 -9
- {ic_code-1.0.2 → ic_code-1.0.5}/pyproject.toml +30 -16
- ic_code-1.0.5/requirements.txt +77 -0
- ic_code-1.0.5/scripts/validate_dependencies.py +233 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/setup.py +27 -56
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/cli.py +234 -38
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/commands/config.py +520 -25
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/installer.py +2 -2
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/manager.py +15 -36
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/schema.py +1 -1
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/secrets.py +2 -2
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/security.py +35 -1
- ic_code-1.0.5/src/ic/core/dependency_validator.py +415 -0
- ic_code-1.0.5/src/ic_code.egg-info/PKG-INFO +879 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic_code.egg-info/SOURCES.txt +4 -2
- ic_code-1.0.5/src/ic_code.egg-info/requires.txt +25 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/ssh/auto_ssh.py +5 -11
- {ic_code-1.0.2 → ic_code-1.0.5}/ssh/server_info.py +123 -48
- ic_code-1.0.2/PKG-INFO +0 -358
- ic_code-1.0.2/README.md +0 -309
- ic_code-1.0.2/config/default.yaml +0 -140
- ic_code-1.0.2/config/secrets.yaml.example +0 -38
- ic_code-1.0.2/oci_module/compartment/info.py +0 -195
- ic_code-1.0.2/oci_module/cost/credit.py +0 -114
- ic_code-1.0.2/oci_module/cost/usage.py +0 -113
- ic_code-1.0.2/oci_module/info/__init__.py +0 -0
- ic_code-1.0.2/requirements.txt +0 -72
- ic_code-1.0.2/src/ic_code.egg-info/PKG-INFO +0 -358
- ic_code-1.0.2/src/ic_code.egg-info/requires.txt +0 -18
- {ic_code-1.0.2 → ic_code-1.0.5}/CHANGELOG.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/LICENSE +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/MANIFEST.in +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/SECURITY.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ec2/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ec2/list_tags.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ec2/tag_check.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ecs/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ecs/service.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/ecs/task.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/eks/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/fargate/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/lb/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/lb/list_tags.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/lb/tag_check.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/msk/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/msk/broker.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/nat/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/profile/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/rds/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/rds/list_tags.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/rds/tag_check.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/s3/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/s3/list_tags.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/s3/tag_check.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/sg/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/vpc/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/vpc/list_tags.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/vpc/tag_check.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/aws/vpn/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/aci/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/aks/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/lb/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/nsg/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/storage/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/vm/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/azure_module/vnet/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/cf/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/cf/dns/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/azure_utils.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/gather_env.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/gcp_config_validator.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/gcp_monitoring.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/gcp_utils.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/log.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/slack.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/common/utils.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/PYPI_DEPLOYMENT.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/README.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/aws/AWS_IMPLEMENTATION_SUMMARY.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/aws/README.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/aws/aws_cli_prd.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/config_migration.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/configuration.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/deployment.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/final_validation_report.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/installation.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/mcp_integration.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/migration.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/migration_guide.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/migration_history.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/security.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/troubleshooting.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/docs/user_guide.md +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/billing/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/billing/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/compute/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/compute/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/firewall/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/firewall/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/functions/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/functions/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/gke/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/gke/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/lb/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/lb/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/run/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/run/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/sql/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/sql/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/storage/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/storage/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/vpc/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/gcp/vpc/info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/mcp/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/mcp/gcp_connector.py +0 -0
- {ic_code-1.0.2/common → ic_code-1.0.5/oci_module}/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/common/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/common/utils.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/compartment/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/cost/__init__.py +0 -0
- {ic_code-1.0.2/oci_module → ic_code-1.0.5/oci_module/info}/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/info/oci_info.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/lb/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/nsg/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/obj/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/policy/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/vcn/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/vm/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/oci_module/volume/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/bump-version.sh +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/deploy.sh +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/final_validation_and_documentation.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/migration_execution_and_validation.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/performance_optimization.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/setup_venv.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/unset_env.sh +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/scripts/validate_config.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/setup.cfg +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/compat/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/compat/cli.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/compat/common.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/external.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/config/migration.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/core/__init__.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/core/logging.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/core/mcp_manager.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/core/session.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic_code.egg-info/entry_points.txt +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/src/ic_code.egg-info/top_level.txt +0 -0
- {ic_code-1.0.2 → ic_code-1.0.5}/ssh/__init__.py +0 -0
ic_code-1.0.5/PKG-INFO
ADDED
|
@@ -0,0 +1,879 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ic-code
|
|
3
|
+
Version: 1.0.5
|
|
4
|
+
Summary: Infrastructure CLI tool for managing AWS, CloudFlare, SSH, and more
|
|
5
|
+
Home-page: https://github.com/dgr009/ic
|
|
6
|
+
Author: SangYun Kim
|
|
7
|
+
Author-email: sykim <cruiser594@gmail.com>
|
|
8
|
+
Project-URL: Homepage, https://github.com/dgr009/ic
|
|
9
|
+
Project-URL: Bug Reports, https://github.com/dgr009/ic/issues
|
|
10
|
+
Project-URL: Source, https://github.com/dgr009/ic
|
|
11
|
+
Project-URL: Documentation, https://github.com/dgr009/ic#readme
|
|
12
|
+
Keywords: cli,infrastructure,aws,oci,gcp,azure,cloudflare,ssh,devops,multi-cloud
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Intended Audience :: System Administrators
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Topic :: System :: Systems Administration
|
|
24
|
+
Classifier: Topic :: Utilities
|
|
25
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
26
|
+
Classifier: Environment :: Console
|
|
27
|
+
Requires-Python: >=3.9,<3.13
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
License-File: LICENSE
|
|
30
|
+
Requires-Dist: boto3<2.0.0,>=1.26.0
|
|
31
|
+
Requires-Dist: botocore<2.0.0,>=1.29.0
|
|
32
|
+
Requires-Dist: requests<3.0.0,>=2.28.0
|
|
33
|
+
Requires-Dist: rich<15.0.0,>=12.0.0
|
|
34
|
+
Requires-Dist: PyYAML<=6.0.2,>=6.0
|
|
35
|
+
Requires-Dist: paramiko<5.0.0,>=2.11.0
|
|
36
|
+
Requires-Dist: python-dotenv<2.0.0,>=0.19.0
|
|
37
|
+
Requires-Dist: cryptography<46.0.0,>=3.4.8
|
|
38
|
+
Requires-Dist: netifaces<1.0.0,>=0.11.0
|
|
39
|
+
Requires-Dist: tqdm<5.0.0,>=4.67.0
|
|
40
|
+
Requires-Dist: jsonschema<5.0.0,>=4.23.0
|
|
41
|
+
Requires-Dist: python-dateutil<3.0.0,>=2.8.0
|
|
42
|
+
Requires-Dist: click<9.0.0,>=8.0.0
|
|
43
|
+
Requires-Dist: packaging<25.0,>=21.0
|
|
44
|
+
Requires-Dist: setuptools<71.0,>=61.0
|
|
45
|
+
Requires-Dist: watchdog<4.0.0,>=3.0.0
|
|
46
|
+
Requires-Dist: cerberus<2.0.0,>=1.3.4
|
|
47
|
+
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
48
|
+
Provides-Extra: dev
|
|
49
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
50
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
51
|
+
Requires-Dist: black>=22.0.0; extra == "dev"
|
|
52
|
+
Requires-Dist: flake8>=5.0.0; extra == "dev"
|
|
53
|
+
Requires-Dist: mypy>=0.991; extra == "dev"
|
|
54
|
+
Dynamic: author
|
|
55
|
+
Dynamic: home-page
|
|
56
|
+
Dynamic: license-file
|
|
57
|
+
Dynamic: requires-python
|
|
58
|
+
|
|
59
|
+
# IC CLI Tool
|
|
60
|
+
|
|
61
|
+
[](https://github.com/dgr009/ic/actions)
|
|
62
|
+
[](https://badge.fury.io/py/ic-code)
|
|
63
|
+
[](https://www.python.org/downloads/)
|
|
64
|
+
[](https://opensource.org/licenses/MIT)
|
|
65
|
+
|
|
66
|
+
A comprehensive Infrastructure Command Line Interface tool for managing cloud services and infrastructure components across multiple platforms. IC CLI provides unified access to AWS, Oracle Cloud Infrastructure (OCI), CloudFlare, and SSH server management with rich progress indicators and secure configuration management.
|
|
67
|
+
|
|
68
|
+
## ✨ Features
|
|
69
|
+
|
|
70
|
+
- **🚀 Multi-Cloud Support**: AWS, OCI, CloudFlare, SSH server management
|
|
71
|
+
- **📊 Rich Progress Bars**: Real-time progress indicators for all long-running operations
|
|
72
|
+
- **🔒 Secure Configuration**: YAML-based configuration with separate secrets management
|
|
73
|
+
- **🌍 Multi-Account/Multi-Region**: Support for multiple cloud accounts and regions
|
|
74
|
+
- **🎨 Beautiful Output**: Rich terminal output with tables, colors, and formatting
|
|
75
|
+
- **⚡ High Performance**: Optimized for speed with concurrent operations
|
|
76
|
+
- **🛡️ Security First**: Built-in security validation and credential protection
|
|
77
|
+
|
|
78
|
+
### Supported Services
|
|
79
|
+
|
|
80
|
+
#### AWS Services (Production Ready)
|
|
81
|
+
- **Compute**: EC2 instances, ECS services, EKS clusters, Fargate
|
|
82
|
+
- **Storage**: S3 buckets, RDS databases
|
|
83
|
+
- **Networking**: VPC, Load Balancers, Security Groups, VPN
|
|
84
|
+
- **Other**: CloudFront distributions, MSK clusters, CodePipeline
|
|
85
|
+
|
|
86
|
+
#### Oracle Cloud Infrastructure (Production Ready)
|
|
87
|
+
- **Compute**: VM instances, Container Instances
|
|
88
|
+
- **Networking**: VCN, Load Balancers, Network Security Groups
|
|
89
|
+
- **Storage**: Block volumes, Object storage
|
|
90
|
+
- **Management**: Compartments, Policies, Cost analysis
|
|
91
|
+
|
|
92
|
+
#### CloudFlare (Production Ready)
|
|
93
|
+
- **DNS**: Zone and record management with filtering
|
|
94
|
+
|
|
95
|
+
#### SSH Management (Production Ready)
|
|
96
|
+
- **Server Discovery**: Automatic server registration and information gathering
|
|
97
|
+
- **Security**: Built-in security filtering and connection management
|
|
98
|
+
|
|
99
|
+
#### Development Status
|
|
100
|
+
- **⚠️ Azure**: In development - usable but may contain bugs
|
|
101
|
+
- **⚠️ GCP**: In development - usable but may contain bugs
|
|
102
|
+
|
|
103
|
+
## 📦 Installation
|
|
104
|
+
|
|
105
|
+
### Prerequisites
|
|
106
|
+
|
|
107
|
+
- **Python**: 3.9 or higher (3.11.13 recommended)
|
|
108
|
+
- **Operating System**: macOS, Linux, or Windows
|
|
109
|
+
- **Dependencies**: All dependencies are automatically installed via pip
|
|
110
|
+
|
|
111
|
+
### From PyPI (Recommended)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Install the latest stable version
|
|
115
|
+
pip install ic-code
|
|
116
|
+
|
|
117
|
+
# Verify installation
|
|
118
|
+
ic --help
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### From Source (Development)
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Clone the repository
|
|
125
|
+
git clone https://github.com/dgr009/ic.git
|
|
126
|
+
cd ic
|
|
127
|
+
|
|
128
|
+
# Create and activate virtual environment
|
|
129
|
+
python -m venv ic-env
|
|
130
|
+
source ic-env/bin/activate # On Windows: ic-env\Scripts\activate
|
|
131
|
+
|
|
132
|
+
# Install dependencies
|
|
133
|
+
pip install -r requirements.txt
|
|
134
|
+
|
|
135
|
+
# Install in development mode
|
|
136
|
+
pip install -e .
|
|
137
|
+
|
|
138
|
+
# Verify installation
|
|
139
|
+
ic --help
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Dependency Validation
|
|
143
|
+
|
|
144
|
+
IC CLI automatically validates all required dependencies on startup and provides clear error messages for missing packages. The tool supports **Python 3.9-3.12** with **Python 3.11.13** recommended for optimal performance.
|
|
145
|
+
|
|
146
|
+
#### Automatic Validation
|
|
147
|
+
```bash
|
|
148
|
+
# IC CLI validates dependencies automatically
|
|
149
|
+
ic --help # Will show dependency errors if any exist
|
|
150
|
+
|
|
151
|
+
# Manual dependency validation
|
|
152
|
+
python scripts/validate_dependencies.py
|
|
153
|
+
|
|
154
|
+
# Comprehensive compatibility testing
|
|
155
|
+
python scripts/test_dependency_compatibility.py --report
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
#### Troubleshooting Dependencies
|
|
159
|
+
```bash
|
|
160
|
+
# Check Python version compatibility
|
|
161
|
+
python --version # Should be 3.9+ to 3.12
|
|
162
|
+
|
|
163
|
+
# Install/update all dependencies
|
|
164
|
+
pip install --upgrade -r requirements.txt
|
|
165
|
+
|
|
166
|
+
# Install missing dependencies automatically
|
|
167
|
+
python scripts/validate_dependencies.py --install-missing
|
|
168
|
+
|
|
169
|
+
# Test requirements.txt installation
|
|
170
|
+
python scripts/validate_dependencies.py --test-requirements
|
|
171
|
+
|
|
172
|
+
# Validate specific platform dependencies
|
|
173
|
+
python scripts/validate_dependencies.py --platforms aws oci
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
#### Supported Python Versions
|
|
177
|
+
- **Python 3.9**: Minimum supported version
|
|
178
|
+
- **Python 3.10**: Fully supported
|
|
179
|
+
- **Python 3.11**: Recommended (tested with 3.11.13)
|
|
180
|
+
- **Python 3.12**: Fully supported
|
|
181
|
+
- **Python 3.13+**: Not yet tested (may work but not guaranteed)
|
|
182
|
+
|
|
183
|
+
## ⚙️ Configuration
|
|
184
|
+
|
|
185
|
+
IC CLI uses a modern, secure YAML-based configuration system that separates default settings from sensitive credentials.
|
|
186
|
+
|
|
187
|
+
### Quick Setup
|
|
188
|
+
|
|
189
|
+
The fastest way to get started is using the built-in configuration initializer:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# Initialize configuration with guided setup
|
|
193
|
+
ic config init
|
|
194
|
+
|
|
195
|
+
# This creates:
|
|
196
|
+
# - ~/.ic/config/default.yaml (default settings)
|
|
197
|
+
# - ~/.ic/config/secrets.yaml.example (template for secrets)
|
|
198
|
+
# - Updates .gitignore for security
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Configuration Structure
|
|
202
|
+
|
|
203
|
+
IC CLI uses a two-file configuration system for security:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
~/.ic/config/
|
|
207
|
+
├── default.yaml # Non-sensitive default settings
|
|
208
|
+
└── secrets.yaml # Your sensitive credentials (create from example)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Step-by-Step Configuration
|
|
212
|
+
|
|
213
|
+
#### 1. Initialize Configuration
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Create configuration directory and files
|
|
217
|
+
ic config init
|
|
218
|
+
|
|
219
|
+
# For specific cloud platforms
|
|
220
|
+
ic config init --template aws # AWS-focused setup
|
|
221
|
+
ic config init --template multi-cloud # All platforms
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
#### 2. Configure Credentials
|
|
225
|
+
|
|
226
|
+
Copy the example secrets file and add your credentials:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# Copy the example file
|
|
230
|
+
cp ~/.ic/config/secrets.yaml.example ~/.ic/config/secrets.yaml
|
|
231
|
+
|
|
232
|
+
# Edit with your actual credentials
|
|
233
|
+
vim ~/.ic/config/secrets.yaml
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
#### 3. Example Secrets Configuration
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
# ~/.ic/config/secrets.yaml
|
|
240
|
+
# AWS Configuration
|
|
241
|
+
aws:
|
|
242
|
+
accounts:
|
|
243
|
+
- "123456789012" # Your AWS account IDs
|
|
244
|
+
- "987654321098"
|
|
245
|
+
profiles:
|
|
246
|
+
default: "your-aws-profile-name"
|
|
247
|
+
regions:
|
|
248
|
+
- "ap-northeast-2"
|
|
249
|
+
- "us-east-1"
|
|
250
|
+
|
|
251
|
+
# Oracle Cloud Infrastructure
|
|
252
|
+
oci:
|
|
253
|
+
config_file: "~/.oci/config"
|
|
254
|
+
profile: "DEFAULT"
|
|
255
|
+
compartments:
|
|
256
|
+
- "ocid1.compartment.oc1..example"
|
|
257
|
+
|
|
258
|
+
# CloudFlare Configuration
|
|
259
|
+
cloudflare:
|
|
260
|
+
email: "your-email@example.com"
|
|
261
|
+
api_token: "your-cloudflare-api-token"
|
|
262
|
+
accounts: ["account1", "account2"] # Filter specific accounts
|
|
263
|
+
zones: ["example.com", "test.com"] # Filter specific zones
|
|
264
|
+
|
|
265
|
+
# SSH Configuration
|
|
266
|
+
ssh:
|
|
267
|
+
key_dir: "~/aws-keys"
|
|
268
|
+
timeout: 30
|
|
269
|
+
skip_prefixes: # Skip servers with these prefixes for security
|
|
270
|
+
- "git"
|
|
271
|
+
- "bastion"
|
|
272
|
+
- "jump"
|
|
273
|
+
- "proxy"
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
#### 4. Platform-Specific Setup
|
|
277
|
+
|
|
278
|
+
**AWS Credentials:**
|
|
279
|
+
```bash
|
|
280
|
+
# Configure AWS CLI (if not already done)
|
|
281
|
+
aws configure
|
|
282
|
+
|
|
283
|
+
# Or use specific profiles
|
|
284
|
+
aws configure --profile production
|
|
285
|
+
aws configure --profile development
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**OCI Configuration:**
|
|
289
|
+
```bash
|
|
290
|
+
# Install OCI CLI and configure
|
|
291
|
+
oci setup config
|
|
292
|
+
|
|
293
|
+
# Verify configuration
|
|
294
|
+
oci iam user get --user-id $(oci iam user list --query 'data[0].id' --raw-output)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**CloudFlare API Token:**
|
|
298
|
+
1. Go to CloudFlare Dashboard → My Profile → API Tokens
|
|
299
|
+
2. Create token with Zone:Read permissions
|
|
300
|
+
3. Add token to secrets.yaml
|
|
301
|
+
|
|
302
|
+
### Configuration Management Commands
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Validate configuration
|
|
306
|
+
ic config validate
|
|
307
|
+
|
|
308
|
+
# Show current configuration (sensitive data masked)
|
|
309
|
+
ic config show
|
|
310
|
+
|
|
311
|
+
# Show only AWS configuration
|
|
312
|
+
ic config show --aws
|
|
313
|
+
|
|
314
|
+
# Get specific configuration value
|
|
315
|
+
ic config get aws.regions
|
|
316
|
+
|
|
317
|
+
# Set configuration value
|
|
318
|
+
ic config set aws.regions '["us-east-1", "ap-northeast-2"]'
|
|
319
|
+
|
|
320
|
+
# Migrate from old .env configuration
|
|
321
|
+
ic config migrate
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## 🚀 Usage
|
|
325
|
+
|
|
326
|
+
All IC CLI commands feature rich progress bars that show real-time progress for long-running operations, making it easy to monitor multi-region and multi-account queries.
|
|
327
|
+
|
|
328
|
+
### AWS Services
|
|
329
|
+
|
|
330
|
+
#### Compute Services
|
|
331
|
+
```bash
|
|
332
|
+
# EC2 instances with progress tracking
|
|
333
|
+
ic aws ec2 info
|
|
334
|
+
ic aws ec2 info --account 123456789012 --regions us-east-1,ap-northeast-2
|
|
335
|
+
|
|
336
|
+
# ECS services and tasks
|
|
337
|
+
ic aws ecs info # List all ECS clusters and services
|
|
338
|
+
ic aws ecs service # Detailed service information
|
|
339
|
+
ic aws ecs task # Running task information
|
|
340
|
+
|
|
341
|
+
# EKS clusters and workloads
|
|
342
|
+
ic aws eks info # Cluster information
|
|
343
|
+
ic aws eks nodes # Node group details
|
|
344
|
+
ic aws eks pods # Pod status across clusters
|
|
345
|
+
ic aws eks addons # EKS add-on information
|
|
346
|
+
ic aws eks fargate # Fargate profile details
|
|
347
|
+
|
|
348
|
+
# Fargate services
|
|
349
|
+
ic aws fargate info # Fargate service information
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
#### Storage Services
|
|
353
|
+
```bash
|
|
354
|
+
# S3 buckets with tag management
|
|
355
|
+
ic aws s3 list_tags # List all S3 buckets with tags
|
|
356
|
+
ic aws s3 tag_check # Validate S3 bucket tagging compliance
|
|
357
|
+
ic aws s3 info # Detailed S3 bucket information
|
|
358
|
+
|
|
359
|
+
# RDS databases
|
|
360
|
+
ic aws rds info # RDS instance and cluster information
|
|
361
|
+
ic aws rds list_tags # RDS resource tags
|
|
362
|
+
ic aws rds tag_check # RDS tagging compliance
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
#### Networking Services
|
|
366
|
+
```bash
|
|
367
|
+
# VPC and networking
|
|
368
|
+
ic aws vpc info # VPC, subnet, and gateway information
|
|
369
|
+
ic aws vpc list_tags # VPC resource tags
|
|
370
|
+
ic aws vpc tag_check # VPC tagging compliance
|
|
371
|
+
|
|
372
|
+
# Load Balancers
|
|
373
|
+
ic aws lb info # Load balancer details
|
|
374
|
+
ic aws lb list_tags # Load balancer tags
|
|
375
|
+
ic aws lb tag_check # Load balancer tagging compliance
|
|
376
|
+
|
|
377
|
+
# Security Groups
|
|
378
|
+
ic aws sg info # Security group rules and associations
|
|
379
|
+
|
|
380
|
+
# VPN connections
|
|
381
|
+
ic aws vpn info # VPN gateway and connection information
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
#### Other AWS Services
|
|
385
|
+
```bash
|
|
386
|
+
# CloudFront distributions
|
|
387
|
+
ic aws cloudfront info # CloudFront distribution details
|
|
388
|
+
|
|
389
|
+
# MSK (Managed Streaming for Kafka)
|
|
390
|
+
ic aws msk info # MSK cluster information
|
|
391
|
+
ic aws msk broker # Kafka broker details
|
|
392
|
+
|
|
393
|
+
# CodePipeline
|
|
394
|
+
ic aws codepipeline build # Build pipeline status
|
|
395
|
+
ic aws codepipeline deploy # Deployment pipeline information
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Oracle Cloud Infrastructure (OCI)
|
|
399
|
+
|
|
400
|
+
#### Compute and Containers
|
|
401
|
+
```bash
|
|
402
|
+
# VM instances across compartments
|
|
403
|
+
ic oci vm info # VM instances with detailed information
|
|
404
|
+
ic oci vm info --compartment-name "Production"
|
|
405
|
+
|
|
406
|
+
# Container instances
|
|
407
|
+
ic oci aci info # Container instance details
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
#### Networking
|
|
411
|
+
```bash
|
|
412
|
+
# Virtual Cloud Networks
|
|
413
|
+
ic oci vcn info # VCN, subnet, and routing information
|
|
414
|
+
|
|
415
|
+
# Load Balancers
|
|
416
|
+
ic oci lb info # Load balancer configurations
|
|
417
|
+
|
|
418
|
+
# Network Security Groups
|
|
419
|
+
ic oci nsg info # NSG rules and associations
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
#### Storage and Management
|
|
423
|
+
```bash
|
|
424
|
+
# Block and object storage
|
|
425
|
+
ic oci volume info # Block volume details
|
|
426
|
+
ic oci obj info # Object storage bucket information
|
|
427
|
+
|
|
428
|
+
# Identity and policies
|
|
429
|
+
ic oci policy info # IAM policies and permissions
|
|
430
|
+
ic oci policy search # Search policies by criteria
|
|
431
|
+
|
|
432
|
+
# Cost management
|
|
433
|
+
ic oci cost usage # Usage and cost analysis
|
|
434
|
+
ic oci cost credit # Credit and billing information
|
|
435
|
+
|
|
436
|
+
# Compartment management
|
|
437
|
+
ic oci compartment info # Compartment hierarchy and details
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### CloudFlare DNS Management
|
|
441
|
+
|
|
442
|
+
```bash
|
|
443
|
+
# DNS records (automatically filtered by configured accounts/zones)
|
|
444
|
+
ic cf dns info # All DNS records
|
|
445
|
+
ic cf dns info --account prod # Specific account
|
|
446
|
+
ic cf dns info --zone example.com # Specific zone
|
|
447
|
+
|
|
448
|
+
# The command respects your configuration filters for security
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### SSH Server Management
|
|
452
|
+
|
|
453
|
+
```bash
|
|
454
|
+
# Server information with security filtering
|
|
455
|
+
ic ssh info # Information about all registered servers
|
|
456
|
+
|
|
457
|
+
# Auto-discovery (respects skip_prefixes in configuration)
|
|
458
|
+
ic ssh reg # Discover and register new SSH servers
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Configuration Management
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
# Configuration setup and validation
|
|
465
|
+
ic config init # Initialize configuration
|
|
466
|
+
ic config validate # Validate current configuration
|
|
467
|
+
ic config show # Display current configuration (masked)
|
|
468
|
+
ic config show --aws # Show only AWS configuration
|
|
469
|
+
|
|
470
|
+
# Configuration migration
|
|
471
|
+
ic config migrate # Migrate from .env to YAML configuration
|
|
472
|
+
|
|
473
|
+
# Configuration management
|
|
474
|
+
ic config get aws.regions # Get specific value
|
|
475
|
+
ic config set aws.regions '["us-east-1"]' # Set specific value
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### Multi-Account and Multi-Region Examples
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
# Query multiple AWS accounts and regions
|
|
482
|
+
ic aws ec2 info --account 123456789012,987654321098 --regions us-east-1,ap-northeast-2,eu-west-1
|
|
483
|
+
|
|
484
|
+
# OCI multi-compartment queries
|
|
485
|
+
ic oci vm info --compartment-name "Production,Development,Testing"
|
|
486
|
+
|
|
487
|
+
# All commands show progress bars for long-running operations
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
## 📋 Command Structure
|
|
491
|
+
|
|
492
|
+
IC CLI follows a consistent, intuitive command structure across all platforms:
|
|
493
|
+
|
|
494
|
+
```
|
|
495
|
+
ic <platform> <service> <command> [options]
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Command Components
|
|
499
|
+
|
|
500
|
+
- **platform**: `aws`, `oci`, `cf` (CloudFlare), `ssh`, `config`
|
|
501
|
+
- **service**: `ec2`, `s3`, `ecs`, `eks`, `rds`, `vm`, `lb`, `dns`, etc.
|
|
502
|
+
- **command**: `info`, `list_tags`, `tag_check`, etc.
|
|
503
|
+
- **options**: `--account`, `--regions`, `--compartment-name`, etc.
|
|
504
|
+
|
|
505
|
+
### Common Options
|
|
506
|
+
|
|
507
|
+
Most commands support these common options:
|
|
508
|
+
|
|
509
|
+
```bash
|
|
510
|
+
# AWS-specific options
|
|
511
|
+
--account ACCOUNT_ID # Target specific AWS account(s)
|
|
512
|
+
--regions REGION_LIST # Target specific AWS region(s)
|
|
513
|
+
--profile PROFILE_NAME # Use specific AWS profile
|
|
514
|
+
|
|
515
|
+
# OCI-specific options
|
|
516
|
+
--compartment-name NAME # Target specific OCI compartment(s)
|
|
517
|
+
--region REGION_NAME # Target specific OCI region
|
|
518
|
+
|
|
519
|
+
# CloudFlare-specific options
|
|
520
|
+
--account ACCOUNT_NAME # Target specific CloudFlare account
|
|
521
|
+
--zone ZONE_NAME # Target specific DNS zone
|
|
522
|
+
|
|
523
|
+
# Output options (available on most commands)
|
|
524
|
+
--output json # JSON output format
|
|
525
|
+
--output table # Table output format (default)
|
|
526
|
+
--verbose # Detailed output
|
|
527
|
+
--quiet # Minimal output
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
## 💡 Advanced Examples
|
|
531
|
+
|
|
532
|
+
### Multi-Cloud Infrastructure Audit
|
|
533
|
+
|
|
534
|
+
```bash
|
|
535
|
+
# AWS infrastructure overview
|
|
536
|
+
ic aws ec2 info --regions us-east-1,ap-northeast-2
|
|
537
|
+
ic aws rds info --account 123456789012
|
|
538
|
+
ic aws s3 tag_check
|
|
539
|
+
|
|
540
|
+
# OCI infrastructure overview
|
|
541
|
+
ic oci vm info --compartment-name "Production"
|
|
542
|
+
ic oci lb info
|
|
543
|
+
ic oci cost usage
|
|
544
|
+
|
|
545
|
+
# CloudFlare DNS audit
|
|
546
|
+
ic cf dns info --zone production-domain.com
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
### Security and Compliance Checks
|
|
550
|
+
|
|
551
|
+
```bash
|
|
552
|
+
# AWS tagging compliance
|
|
553
|
+
ic aws ec2 tag_check # Check EC2 instance tagging
|
|
554
|
+
ic aws s3 tag_check # Check S3 bucket tagging
|
|
555
|
+
ic aws rds tag_check # Check RDS tagging
|
|
556
|
+
ic aws lb tag_check # Check Load Balancer tagging
|
|
557
|
+
ic aws vpc tag_check # Check VPC resource tagging
|
|
558
|
+
|
|
559
|
+
# OCI policy and security review
|
|
560
|
+
ic oci policy info # Review IAM policies
|
|
561
|
+
ic oci nsg info # Review network security groups
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
### Cost and Resource Management
|
|
565
|
+
|
|
566
|
+
```bash
|
|
567
|
+
# AWS resource inventory
|
|
568
|
+
ic aws ec2 info --regions all # All EC2 instances across regions
|
|
569
|
+
ic aws rds info --account all # All RDS instances across accounts
|
|
570
|
+
ic aws s3 info # All S3 buckets
|
|
571
|
+
|
|
572
|
+
# OCI cost analysis
|
|
573
|
+
ic oci cost usage # Usage and cost breakdown
|
|
574
|
+
ic oci cost credit # Credit and billing status
|
|
575
|
+
ic oci compartment info # Resource organization
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
### Development Status Examples
|
|
579
|
+
|
|
580
|
+
⚠️ **Note**: Azure and GCP features are in development. While usable, they may contain bugs:
|
|
581
|
+
|
|
582
|
+
```bash
|
|
583
|
+
# Azure (Development - may have issues)
|
|
584
|
+
ic azure --help # Shows development warning
|
|
585
|
+
ic azure vm info # Basic VM information
|
|
586
|
+
ic azure aks info # AKS cluster details
|
|
587
|
+
|
|
588
|
+
# GCP (Development - may have issues)
|
|
589
|
+
ic gcp --help # Shows development warning
|
|
590
|
+
ic gcp compute info # Compute Engine instances
|
|
591
|
+
ic gcp gke info # GKE cluster information
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
## 🔧 Troubleshooting
|
|
595
|
+
|
|
596
|
+
### Common Issues and Solutions
|
|
597
|
+
|
|
598
|
+
#### Installation Issues
|
|
599
|
+
|
|
600
|
+
**Problem**: `pip install ic-code` fails with dependency conflicts
|
|
601
|
+
```bash
|
|
602
|
+
# Solution: Use a virtual environment
|
|
603
|
+
python -m venv ic-env
|
|
604
|
+
source ic-env/bin/activate # On Windows: ic-env\Scripts\activate
|
|
605
|
+
pip install --upgrade pip
|
|
606
|
+
pip install ic-code
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
**Problem**: Python version compatibility issues
|
|
610
|
+
```bash
|
|
611
|
+
# Check Python version (3.9+ required, 3.11.13 recommended)
|
|
612
|
+
python --version
|
|
613
|
+
|
|
614
|
+
# Install compatible Python version using pyenv (recommended)
|
|
615
|
+
pyenv install 3.11.13
|
|
616
|
+
pyenv local 3.11.13
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
#### Configuration Issues
|
|
620
|
+
|
|
621
|
+
**Problem**: `ic config validate` shows validation errors
|
|
622
|
+
```bash
|
|
623
|
+
# Check configuration file syntax
|
|
624
|
+
ic config show --verbose
|
|
625
|
+
|
|
626
|
+
# Reinitialize configuration
|
|
627
|
+
ic config init --force
|
|
628
|
+
|
|
629
|
+
# Migrate from old .env configuration
|
|
630
|
+
ic config migrate
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
**Problem**: AWS credentials not found
|
|
634
|
+
```bash
|
|
635
|
+
# Configure AWS CLI
|
|
636
|
+
aws configure
|
|
637
|
+
|
|
638
|
+
# Verify AWS credentials
|
|
639
|
+
aws sts get-caller-identity
|
|
640
|
+
|
|
641
|
+
# Check IC configuration
|
|
642
|
+
ic config show --aws
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
**Problem**: OCI configuration issues
|
|
646
|
+
```bash
|
|
647
|
+
# Verify OCI CLI configuration
|
|
648
|
+
oci setup config
|
|
649
|
+
|
|
650
|
+
# Test OCI connectivity
|
|
651
|
+
oci iam user get --user-id $(oci iam user list --query 'data[0].id' --raw-output)
|
|
652
|
+
|
|
653
|
+
# Check IC OCI configuration
|
|
654
|
+
ic config get oci.config_file
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
#### Runtime Issues
|
|
658
|
+
|
|
659
|
+
**Problem**: Commands hang or timeout
|
|
660
|
+
```bash
|
|
661
|
+
# Check network connectivity
|
|
662
|
+
ping aws.amazon.com
|
|
663
|
+
ping oracle.com
|
|
664
|
+
|
|
665
|
+
# Increase timeout in configuration
|
|
666
|
+
ic config set aws.timeout 60
|
|
667
|
+
ic config set oci.timeout 60
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
**Problem**: Permission denied errors
|
|
671
|
+
```bash
|
|
672
|
+
# Check file permissions
|
|
673
|
+
ls -la ~/.ic/config/
|
|
674
|
+
|
|
675
|
+
# Fix permissions
|
|
676
|
+
chmod 600 ~/.ic/config/secrets.yaml
|
|
677
|
+
chmod 755 ~/.ic/config/
|
|
678
|
+
```
|
|
679
|
+
|
|
680
|
+
**Problem**: Progress bars not displaying correctly
|
|
681
|
+
```bash
|
|
682
|
+
# Check terminal compatibility
|
|
683
|
+
echo $TERM
|
|
684
|
+
|
|
685
|
+
# Force simple output if needed
|
|
686
|
+
export IC_SIMPLE_OUTPUT=1
|
|
687
|
+
ic aws ec2 info
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
#### Platform-Specific Issues
|
|
691
|
+
|
|
692
|
+
**AWS Issues:**
|
|
693
|
+
- Ensure AWS CLI is configured: `aws configure`
|
|
694
|
+
- Check account access: `aws sts get-caller-identity`
|
|
695
|
+
- Verify region availability: `aws ec2 describe-regions`
|
|
696
|
+
|
|
697
|
+
**OCI Issues:**
|
|
698
|
+
- Verify OCI CLI setup: `oci setup config`
|
|
699
|
+
- Check compartment access: `oci iam compartment list`
|
|
700
|
+
- Validate API key: `oci iam user get --user-id <user-id>`
|
|
701
|
+
|
|
702
|
+
**CloudFlare Issues:**
|
|
703
|
+
- Verify API token permissions in CloudFlare dashboard
|
|
704
|
+
- Check zone access: Test with CloudFlare API directly
|
|
705
|
+
- Ensure account/zone filters are correct in configuration
|
|
706
|
+
|
|
707
|
+
### Getting Help
|
|
708
|
+
|
|
709
|
+
```bash
|
|
710
|
+
# General help
|
|
711
|
+
ic --help
|
|
712
|
+
|
|
713
|
+
# Platform-specific help
|
|
714
|
+
ic aws --help
|
|
715
|
+
ic oci --help
|
|
716
|
+
ic cf --help
|
|
717
|
+
|
|
718
|
+
# Service-specific help
|
|
719
|
+
ic aws ec2 --help
|
|
720
|
+
ic oci vm --help
|
|
721
|
+
|
|
722
|
+
# Configuration help
|
|
723
|
+
ic config --help
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
### Debug Mode
|
|
727
|
+
|
|
728
|
+
Enable verbose logging for troubleshooting:
|
|
729
|
+
|
|
730
|
+
```bash
|
|
731
|
+
# Set debug logging level
|
|
732
|
+
ic config set logging.level DEBUG
|
|
733
|
+
|
|
734
|
+
# Run command with verbose output
|
|
735
|
+
ic aws ec2 info --verbose
|
|
736
|
+
|
|
737
|
+
# Check log files
|
|
738
|
+
tail -f ~/.ic/logs/ic.log
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
## 🚧 Development Status
|
|
742
|
+
|
|
743
|
+
### Production Ready Platforms
|
|
744
|
+
- ✅ **AWS**: Fully tested and production ready
|
|
745
|
+
- ✅ **OCI**: Fully tested and production ready
|
|
746
|
+
- ✅ **CloudFlare**: Fully tested and production ready
|
|
747
|
+
- ✅ **SSH**: Fully tested and production ready
|
|
748
|
+
|
|
749
|
+
### Development Platforms
|
|
750
|
+
- ⚠️ **Azure**: In active development
|
|
751
|
+
- Basic functionality implemented
|
|
752
|
+
- May contain bugs or incomplete features
|
|
753
|
+
- Use with caution in production environments
|
|
754
|
+
- Help shows development status warning: `ic azure --help`
|
|
755
|
+
|
|
756
|
+
- ⚠️ **GCP**: In active development
|
|
757
|
+
- Basic functionality implemented
|
|
758
|
+
- May contain bugs or incomplete features
|
|
759
|
+
- Use with caution in production environments
|
|
760
|
+
- Help shows development status warning: `ic gcp --help`
|
|
761
|
+
|
|
762
|
+
### Reporting Issues
|
|
763
|
+
|
|
764
|
+
If you encounter issues with development platforms:
|
|
765
|
+
|
|
766
|
+
1. Check the help output for known limitations: `ic azure --help` or `ic gcp --help`
|
|
767
|
+
2. Enable debug logging: `ic config set logging.level DEBUG`
|
|
768
|
+
3. Report issues with detailed logs on [GitHub Issues](https://github.com/dgr009/ic/issues)
|
|
769
|
+
4. Include platform, service, and command details in your report
|
|
770
|
+
|
|
771
|
+
## 🏗️ Development
|
|
772
|
+
|
|
773
|
+
### Project Structure
|
|
774
|
+
|
|
775
|
+
```
|
|
776
|
+
ic/
|
|
777
|
+
├── src/ic/ # Main package
|
|
778
|
+
│ ├── cli.py # CLI entry point and argument parsing
|
|
779
|
+
│ ├── config/ # Configuration management system
|
|
780
|
+
│ ├── core/ # Core utilities and logging
|
|
781
|
+
│ └── commands/ # Command implementations
|
|
782
|
+
├── aws/ # AWS service modules
|
|
783
|
+
├── oci_module/ # Oracle Cloud Infrastructure modules
|
|
784
|
+
├── cf/ # CloudFlare modules
|
|
785
|
+
├── ssh/ # SSH management modules
|
|
786
|
+
├── azure_module/ # Azure modules (development)
|
|
787
|
+
├── gcp/ # Google Cloud Platform modules (development)
|
|
788
|
+
├── common/ # Shared utilities and progress decorators
|
|
789
|
+
├── tests/ # Test suite
|
|
790
|
+
│ ├── unit/ # Unit tests
|
|
791
|
+
│ ├── integration/ # Integration tests
|
|
792
|
+
│ └── security/ # Security tests
|
|
793
|
+
├── docs/ # Documentation
|
|
794
|
+
├── requirements.txt # Python dependencies
|
|
795
|
+
└── pyproject.toml # Package configuration
|
|
796
|
+
```
|
|
797
|
+
|
|
798
|
+
### Setting Up Development Environment
|
|
799
|
+
|
|
800
|
+
```bash
|
|
801
|
+
# Clone repository
|
|
802
|
+
git clone https://github.com/dgr009/ic.git
|
|
803
|
+
cd ic
|
|
804
|
+
|
|
805
|
+
# Create virtual environment
|
|
806
|
+
python -m venv ic-dev
|
|
807
|
+
source ic-dev/bin/activate # On Windows: ic-dev\Scripts\activate
|
|
808
|
+
|
|
809
|
+
# Install development dependencies
|
|
810
|
+
pip install -r requirements.txt
|
|
811
|
+
pip install -e .[dev]
|
|
812
|
+
|
|
813
|
+
# Run tests
|
|
814
|
+
pytest
|
|
815
|
+
|
|
816
|
+
# Run with coverage
|
|
817
|
+
pytest --cov=src --cov-report=html
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
### Adding New Services
|
|
821
|
+
|
|
822
|
+
1. **Create service module**: Add new module in appropriate platform directory
|
|
823
|
+
2. **Implement progress decorators**: Use `@progress_bar_decorator` for long operations
|
|
824
|
+
3. **Add CLI integration**: Update `src/ic/cli.py` with new commands
|
|
825
|
+
4. **Add tests**: Create unit and integration tests
|
|
826
|
+
5. **Update documentation**: Add usage examples to README
|
|
827
|
+
|
|
828
|
+
### Testing
|
|
829
|
+
|
|
830
|
+
```bash
|
|
831
|
+
# Run all tests
|
|
832
|
+
pytest
|
|
833
|
+
|
|
834
|
+
# Run specific test categories
|
|
835
|
+
pytest -m unit # Unit tests only
|
|
836
|
+
pytest -m integration # Integration tests only
|
|
837
|
+
pytest -m security # Security tests only
|
|
838
|
+
|
|
839
|
+
# Run with coverage
|
|
840
|
+
pytest --cov=src --cov-report=html --cov-report=term
|
|
841
|
+
|
|
842
|
+
# Run performance tests
|
|
843
|
+
pytest -m performance
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
## 🤝 Contributing
|
|
847
|
+
|
|
848
|
+
We welcome contributions! Please see our contribution guidelines:
|
|
849
|
+
|
|
850
|
+
1. **Fork the repository** on GitHub
|
|
851
|
+
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
|
|
852
|
+
3. **Make your changes** with appropriate tests
|
|
853
|
+
4. **Run the test suite**: `pytest`
|
|
854
|
+
5. **Update documentation** as needed
|
|
855
|
+
6. **Submit a pull request** with a clear description
|
|
856
|
+
|
|
857
|
+
### Code Standards
|
|
858
|
+
|
|
859
|
+
- Follow PEP 8 style guidelines
|
|
860
|
+
- Add type hints for new functions
|
|
861
|
+
- Include docstrings for public methods
|
|
862
|
+
- Add progress bar decorators for long-running operations
|
|
863
|
+
- Ensure security best practices for credential handling
|
|
864
|
+
|
|
865
|
+
## 📄 License
|
|
866
|
+
|
|
867
|
+
MIT License - see [LICENSE](LICENSE) file for details.
|
|
868
|
+
|
|
869
|
+
## 🆘 Support
|
|
870
|
+
|
|
871
|
+
- **Documentation**: This README and inline help (`ic --help`)
|
|
872
|
+
- **Issues**: [GitHub Issues](https://github.com/dgr009/ic/issues)
|
|
873
|
+
- **Discussions**: [GitHub Discussions](https://github.com/dgr009/ic/discussions)
|
|
874
|
+
- **Security**: Report security issues privately via GitHub Security Advisories
|
|
875
|
+
|
|
876
|
+
---
|
|
877
|
+
|
|
878
|
+
**Made with ❤️ for infrastructure engineers and cloud administrators**$`
|
|
879
|
+
|