ic-code 1.3.1__tar.gz → 1.3.4__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.3.1/src/ic_code.egg-info → ic_code-1.3.4}/PKG-INFO +4 -3
- {ic_code-1.3.1 → ic_code-1.3.4}/README.md +1 -1
- {ic_code-1.3.1 → ic_code-1.3.4}/SECURITY.md +3 -3
- {ic_code-1.3.1 → ic_code-1.3.4}/config/default.yaml +3 -5
- ic_code-1.3.4/docs/README.md +20 -0
- ic_code-1.3.4/docs/aws/README.md +62 -0
- ic_code-1.3.4/docs/cloudflare/README.md +35 -0
- ic_code-1.3.4/docs/gcp/README.md +35 -0
- ic_code-1.3.4/docs/installation.md +57 -0
- ic_code-1.3.4/docs/oci/README.md +36 -0
- ic_code-1.3.4/docs/release-guide.md +50 -0
- ic_code-1.3.4/docs/security.md +48 -0
- ic_code-1.3.4/docs/tencent/README.md +45 -0
- ic_code-1.3.4/docs/troubleshooting.md +37 -0
- ic_code-1.3.4/docs/user_guide.md +79 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/pyproject.toml +3 -2
- {ic_code-1.3.1 → ic_code-1.3.4}/requirements.txt +2 -1
- {ic_code-1.3.1 → ic_code-1.3.4}/scripts/ci-detect-platforms.py +1 -1
- {ic_code-1.3.1 → ic_code-1.3.4}/scripts/ci-generate-matrix.py +1 -1
- {ic_code-1.3.1 → ic_code-1.3.4}/setup.py +3 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/__init__.py +1 -1
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/commands/config.py +63 -283
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/migration.py +2 -2
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ec2/info.py +63 -27
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/lb/info.py +6 -4
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/vpc/info.py +5 -5
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/clb/info.py +134 -48
- ic_code-1.3.4/src/ic/platforms/tencent/clb/traffic.py +599 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/cvm/info.py +153 -56
- ic_code-1.3.4/src/ic/platforms/tencent/vpc/info.py +439 -0
- {ic_code-1.3.1 → ic_code-1.3.4/src/ic_code.egg-info}/PKG-INFO +4 -3
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic_code.egg-info/SOURCES.txt +4 -39
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic_code.egg-info/requires.txt +2 -1
- ic_code-1.3.1/docs/README.md +0 -80
- ic_code-1.3.1/docs/_templates/configuration.md +0 -196
- ic_code-1.3.1/docs/_templates/installation.md +0 -79
- ic_code-1.3.1/docs/_templates/troubleshooting.md +0 -414
- ic_code-1.3.1/docs/_templates/usage.md +0 -290
- ic_code-1.3.1/docs/aws/README.md +0 -78
- ic_code-1.3.1/docs/aws/aws_cli_prd.md +0 -317
- ic_code-1.3.1/docs/aws/installation.md +0 -121
- ic_code-1.3.1/docs/ci-workflow-guide.md +0 -221
- ic_code-1.3.1/docs/cloudflare_configuration_example.md +0 -500
- ic_code-1.3.1/docs/config_migration.md +0 -169
- ic_code-1.3.1/docs/deployment.md +0 -359
- ic_code-1.3.1/docs/development/README.md +0 -241
- ic_code-1.3.1/docs/development/cleanup_summary.md +0 -125
- ic_code-1.3.1/docs/development/development_guide.md +0 -495
- ic_code-1.3.1/docs/development/import_patterns.md +0 -342
- ic_code-1.3.1/docs/development/migration_guide.md +0 -376
- ic_code-1.3.1/docs/gcp/GCP_CONFIGURATION_GUIDE.md +0 -1108
- ic_code-1.3.1/docs/gcp/GCP_SECURITY_BEST_PRACTICES.md +0 -608
- ic_code-1.3.1/docs/gcp/README.md +0 -38
- ic_code-1.3.1/docs/general/configuration.md +0 -189
- ic_code-1.3.1/docs/installation.md +0 -384
- ic_code-1.3.1/docs/migration.md +0 -462
- ic_code-1.3.1/docs/migration_guide.md +0 -290
- ic_code-1.3.1/docs/oci/README.md +0 -27
- ic_code-1.3.1/docs/oci/installation.md +0 -84
- ic_code-1.3.1/docs/release-guide.md +0 -258
- ic_code-1.3.1/docs/security.md +0 -470
- ic_code-1.3.1/docs/troubleshooting.md +0 -358
- ic_code-1.3.1/docs/user_guide.md +0 -113
- ic_code-1.3.1/scripts/analysis_summary.py +0 -436
- ic_code-1.3.1/scripts/cli_usage_analysis.py +0 -780
- ic_code-1.3.1/scripts/dependency_mapper.py +0 -791
- ic_code-1.3.1/scripts/final_validation_and_documentation.py +0 -1353
- ic_code-1.3.1/scripts/fix_consolidated_imports.py +0 -96
- ic_code-1.3.1/scripts/migration_execution_and_validation.py +0 -544
- ic_code-1.3.1/scripts/performance_optimization.py +0 -366
- ic_code-1.3.1/scripts/setup_venv.py +0 -285
- ic_code-1.3.1/scripts/test-ci-detection.sh +0 -111
- ic_code-1.3.1/scripts/unset_env.sh +0 -9
- ic_code-1.3.1/scripts/validate_config.py +0 -199
- ic_code-1.3.1/scripts/validate_dependencies.py +0 -233
- ic_code-1.3.1/src/ic/platforms/cloudflare/README.md +0 -564
- ic_code-1.3.1/src/ic/platforms/gcp/README.md +0 -744
- ic_code-1.3.1/src/ic/platforms/oci/README.md +0 -62
- ic_code-1.3.1/src/ic/platforms/ssh/README.md +0 -130
- ic_code-1.3.1/src/ic/platforms/tencent/vpc/info.py +0 -214
- ic_code-1.3.1/src/ic/security/README.md +0 -293
- {ic_code-1.3.1 → ic_code-1.3.4}/LICENSE +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/MANIFEST.in +0 -0
- /ic_code-1.3.1/docs/ssh/configuration.md → /ic_code-1.3.4/docs/ssh/README.md +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/scripts/bump-version.sh +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/scripts/cf_edge_nsg_make/cf_edge_nsg_make.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/scripts/deploy.sh +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/scripts/oracle-policy/user_policy.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/setup.cfg +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/gather_env.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/gcp_config_validator.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/gcp_monitoring.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/gcp_utils.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/log.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/progress_decorator.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/slack.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/common/utils.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/cli.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/commands/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/commands/security.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/compat/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/compat/cli.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/compat/common.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/cleanup.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/docs_organizer.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/external.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/installer.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/manager.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/migration_utils.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/path_manager.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/schema.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/secrets.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/config/security.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/core/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/core/dependency_validator.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/core/logging.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/core/platform_discovery.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/core/session.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/core/silence_logging.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/cloudfront/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/cloudfront/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/codepipeline/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/codepipeline/build.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/codepipeline/deploy.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ec2/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ec2/list_tags.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ec2/tag_check.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ecs/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ecs/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ecs/service.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/ecs/task.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/addons.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/fargate.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/nodes.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/pods.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/eks/update_config.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/fargate/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/fargate/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/healthdashboard/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/healthdashboard/reboot.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/lb/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/lb/list_tags.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/lb/tag_check.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/msk/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/msk/broker.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/msk/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/nat/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/nat/list_tags.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/nat/tag_check.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/profile/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/profile/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/rds/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/rds/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/rds/list_tags.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/rds/tag_check.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/s3/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/s3/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/s3/list_tags.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/s3/tag_check.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/sg/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/sg/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/vpc/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/vpc/list_tags.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/vpc/tag_check.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/vpn/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/aws/vpn/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/account/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/account/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/client.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/dns/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/dns/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/dns/list_info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/rules/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/rules/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/traffic/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/traffic/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/waf/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/waf/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/zone/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/cloudflare/zone/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/billing/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/billing/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/billing/mock_data.json +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/compute/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/compute/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/compute/mock_data.json +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/firewall/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/firewall/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/functions/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/functions/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/gke/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/gke/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/gke/mock_data.json +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/lb/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/lb/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/run/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/run/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/sql/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/sql/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/storage/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/storage/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/vpc/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/vpc/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/gcp/vpc/mock_data.json +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/common/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/common/utils.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/compartment/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/compartment/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/cost/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/cost/credit.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/cost/usage.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/info/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/info/oci_info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/lb/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/lb/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/nsg/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/nsg/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/obj/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/obj/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/policy/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/policy/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/policy/search.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/vcn/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/vcn/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/vm/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/vm/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/volume/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/oci/volume/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/auto/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/auto/scan.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/auto_ssh.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/server/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/server/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/ssh/server_info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/clb/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/client.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/cvm/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/lighthouse/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/lighthouse/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/nat/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/nat/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/profile/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/profile/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/sg/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/sg/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/tke/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/tke/info.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/platforms/tencent/vpc/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/__init__.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/config.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/detector.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/guidance.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/hooks.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/patterns.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic/security/scanner.py +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic_code.egg-info/dependency_links.txt +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic_code.egg-info/entry_points.txt +0 -0
- {ic_code-1.3.1 → ic_code-1.3.4}/src/ic_code.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ic-code
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.4
|
|
4
4
|
Summary: Infrastructure CLI tool for managing AWS, GCP, OCI, CloudFlare, SSH, and more
|
|
5
5
|
Home-page: https://github.com/dgr009/ic
|
|
6
6
|
Author: SangYun Kim
|
|
@@ -65,7 +65,8 @@ Requires-Dist: setuptools<76.0.0,>=69.0.0
|
|
|
65
65
|
Requires-Dist: tencentcloud-sdk-python<4.0.0,>=3.0.0
|
|
66
66
|
Provides-Extra: dev
|
|
67
67
|
Requires-Dist: pytest<9.0.0,>=8.0.0; extra == "dev"
|
|
68
|
-
Requires-Dist: pytest-cov<
|
|
68
|
+
Requires-Dist: pytest-cov<8.0.0,>=5.0.0; extra == "dev"
|
|
69
|
+
Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
|
|
69
70
|
Requires-Dist: black<25.0.0,>=24.0.0; extra == "dev"
|
|
70
71
|
Requires-Dist: flake8<8.0.0,>=7.0.0; extra == "dev"
|
|
71
72
|
Requires-Dist: mypy<2.0.0,>=1.10.0; extra == "dev"
|
|
@@ -110,7 +111,7 @@ A comprehensive, production-grade Infrastructure Command Line Interface tool for
|
|
|
110
111
|
### 2. 🟦 Tencent Cloud Services (Production Ready)
|
|
111
112
|
- **Compute**: CVM instances (with CPU, Mem, Disk, IP, SGs), Lighthouse lightweight application servers
|
|
112
113
|
- **Containers**: TKE (Tencent Kubernetes Engine) clusters & node details
|
|
113
|
-
- **Networking**: VPC, Subnets, NAT Gateways, CLB (Load Balancers -
|
|
114
|
+
- **Networking**: VPC, Subnets, NAT Gateways, CLB (Load Balancers - listener rules, health check, target health analysis & network traffic bandwidth statistics), Security Groups (with Ingress/Egress rules & tree view)
|
|
114
115
|
- **Authentication**: Multi-account STS AssumeRole support, Profile management (`ic tencent profile info` via `~/.tencent/credentials`)
|
|
115
116
|
|
|
116
117
|
### 3. 🟩 GCP Services (Production Ready)
|
|
@@ -32,7 +32,7 @@ A comprehensive, production-grade Infrastructure Command Line Interface tool for
|
|
|
32
32
|
### 2. 🟦 Tencent Cloud Services (Production Ready)
|
|
33
33
|
- **Compute**: CVM instances (with CPU, Mem, Disk, IP, SGs), Lighthouse lightweight application servers
|
|
34
34
|
- **Containers**: TKE (Tencent Kubernetes Engine) clusters & node details
|
|
35
|
-
- **Networking**: VPC, Subnets, NAT Gateways, CLB (Load Balancers -
|
|
35
|
+
- **Networking**: VPC, Subnets, NAT Gateways, CLB (Load Balancers - listener rules, health check, target health analysis & network traffic bandwidth statistics), Security Groups (with Ingress/Egress rules & tree view)
|
|
36
36
|
- **Authentication**: Multi-account STS AssumeRole support, Profile management (`ic tencent profile info` via `~/.tencent/credentials`)
|
|
37
37
|
|
|
38
38
|
### 3. 🟩 GCP Services (Production Ready)
|
|
@@ -208,9 +208,9 @@ Before using IC in production:
|
|
|
208
208
|
## 📚 Additional Resources
|
|
209
209
|
|
|
210
210
|
### Documentation
|
|
211
|
-
- [
|
|
212
|
-
- [
|
|
213
|
-
- [
|
|
211
|
+
- [Installation & Setup Guide](docs/installation.md)
|
|
212
|
+
- [User Guide](docs/user_guide.md)
|
|
213
|
+
- [Security Guide](docs/security.md)
|
|
214
214
|
|
|
215
215
|
### Security Tools
|
|
216
216
|
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
|
|
@@ -49,14 +49,12 @@ cloudflare:
|
|
|
49
49
|
zones: []
|
|
50
50
|
ssh:
|
|
51
51
|
config_file: ~/.ssh/config
|
|
52
|
-
key_dir:
|
|
52
|
+
key_dir: ~/.ssh
|
|
53
53
|
max_workers: 100
|
|
54
54
|
skip_prefixes:
|
|
55
55
|
- git
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
- agw01
|
|
59
|
-
- semaphore
|
|
56
|
+
- test-
|
|
57
|
+
- temp-
|
|
60
58
|
timeouts:
|
|
61
59
|
port_scan: 0.5
|
|
62
60
|
ssh_connect: 5
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# IC CLI Documentation Index
|
|
2
|
+
|
|
3
|
+
Welcome to the **IC CLI (Infrastructure Commander)** official documentation.
|
|
4
|
+
|
|
5
|
+
## 📚 Core Guides
|
|
6
|
+
|
|
7
|
+
- **[User Guide (한국어 종합 가이드)](user_guide.md)**: 전체 플랫폼 명령어 및 사용 흐름 통합 가이드.
|
|
8
|
+
- **[Installation Guide](installation.md)**: IC CLI 설치, 환경 설정, 자격 증명 준비 안내.
|
|
9
|
+
- **[Security Guide](security.md)**: 마스킹, 시크릿 스캔, Git hook 보안 관리.
|
|
10
|
+
- **[Troubleshooting Guide](troubleshooting.md)**: 주요 오류 해결 및 디버깅 가이드.
|
|
11
|
+
- **[Release & Deployment Guide](release-guide.md)**: 버저닝, PyPI 패키지 빌드 및 배포 절차.
|
|
12
|
+
|
|
13
|
+
## ☁️ Platform Guides
|
|
14
|
+
|
|
15
|
+
- **[AWS Platform](aws/README.md)**: Compute, Storage, EKS, Security Group, Health Dashboard reboot checks.
|
|
16
|
+
- **[Tencent Cloud Platform](tencent/README.md)**: CVM, Lighthouse, CLB, TKE, Profile management.
|
|
17
|
+
- **[GCP Platform](gcp/README.md)**: Compute Engine, GKE, Storage, VPC, Cloud SQL.
|
|
18
|
+
- **[OCI Platform](oci/README.md)**: Compute, VCN, Compartments, NSG, Cost usage.
|
|
19
|
+
- **[Cloudflare Platform](cloudflare/README.md)**: Zone discovery, DNS record management, API token filtering.
|
|
20
|
+
- **[SSH Management](ssh/README.md)**: Server discovery, host scanning, key management.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# AWS Platform Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains documentation for the AWS (Amazon Web Services) integration in IC CLI.
|
|
4
|
+
|
|
5
|
+
## Available Guides
|
|
6
|
+
|
|
7
|
+
- [Installation Guide](../installation.md) - How to install and set up AWS integration
|
|
8
|
+
- [User & Usage Guide](../user_guide.md) - Complete command reference for AWS commands
|
|
9
|
+
- [Troubleshooting Guide](../troubleshooting.md) - Common issues and solutions
|
|
10
|
+
|
|
11
|
+
## Services Supported
|
|
12
|
+
|
|
13
|
+
- EC2 (Elastic Compute Cloud)
|
|
14
|
+
- AWS Health Dashboard (Scheduled EC2 reboot maintenance checks: `ic aws healthdashboard reboot`)
|
|
15
|
+
- S3 (Simple Storage Service)
|
|
16
|
+
- VPC & Security Groups (VPC, Subnets, Gateways, Security Group Tree view)
|
|
17
|
+
- RDS (Relational Database Service)
|
|
18
|
+
- EKS (Elastic Kubernetes Service)
|
|
19
|
+
- ECS (Elastic Container Service)
|
|
20
|
+
- Fargate Profiles
|
|
21
|
+
- Load Balancers (ALB/NLB with Listener Rules and Target Health)
|
|
22
|
+
- CloudFront Distributions
|
|
23
|
+
- MSK (Managed Streaming for Kafka)
|
|
24
|
+
- CodePipeline Status
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## AWS CLI 주요 기능 사용법 (Korean Documentation)
|
|
29
|
+
|
|
30
|
+
### 1. AWS Health Dashboard EC2 재부팅 일정 조회 (`ic aws healthdashboard reboot`)
|
|
31
|
+
|
|
32
|
+
AWS Health API를 사용하여 EC2 인스턴스의 예정된 재부팅 유지보수 일정("EC2 instance reboot maintenance scheduled")을 다중 계정 전체에서 동시 조회합니다.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# 로컬에 설정된 전 계정/프로파일 원터치 자동 조회
|
|
36
|
+
ic aws healthdashboard reboot
|
|
37
|
+
|
|
38
|
+
# 명시적 전체 프로파일 조회
|
|
39
|
+
ic aws healthdashboard reboot -A
|
|
40
|
+
|
|
41
|
+
# 특정 계정 지정 조회
|
|
42
|
+
ic aws healthdashboard reboot -a prod-account,stage-account
|
|
43
|
+
|
|
44
|
+
# 이미 마감(closed/RESOLVED)된 과거 일정까지 포함하여 조회
|
|
45
|
+
ic aws healthdashboard reboot --all-status
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. EKS 클러스터 정보 조회 (`ic aws eks info`)
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
ic aws eks info
|
|
52
|
+
ic aws eks info -a 123456789012 -r ap-northeast-2
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Security Group 분석 및 시각화 트리 (`ic aws sg info`)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ic aws sg info
|
|
59
|
+
ic aws sg info -o tree
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
자세한 사용법은 [User Guide](../user_guide.md)를 참조하세요.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Cloudflare Platform Guide
|
|
2
|
+
|
|
3
|
+
This document covers configuration, account filtering, and commands for Cloudflare in IC CLI.
|
|
4
|
+
|
|
5
|
+
## ⚙️ Configuration (`~/.ic/config/secrets.yaml`)
|
|
6
|
+
|
|
7
|
+
Add your Cloudflare credentials to your secrets file:
|
|
8
|
+
|
|
9
|
+
```yaml
|
|
10
|
+
cloudflare:
|
|
11
|
+
email: "user@example.com"
|
|
12
|
+
api_token: "your-cloudflare-api-token"
|
|
13
|
+
|
|
14
|
+
# Optional filtering
|
|
15
|
+
cloudflare_accounts:
|
|
16
|
+
- "Production"
|
|
17
|
+
- "Development"
|
|
18
|
+
cloudflare_zones:
|
|
19
|
+
- "example.com"
|
|
20
|
+
- "my-app.io"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 🚀 Available Commands
|
|
24
|
+
|
|
25
|
+
### 1. Zone Information
|
|
26
|
+
```bash
|
|
27
|
+
# List all discovered zones
|
|
28
|
+
ic cf zone info
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 2. DNS Record Management
|
|
32
|
+
```bash
|
|
33
|
+
# List DNS records for zones
|
|
34
|
+
ic cf dns info
|
|
35
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# GCP Platform Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains documentation for the GCP (Google Cloud Platform) integration in IC CLI.
|
|
4
|
+
|
|
5
|
+
## Available Guides
|
|
6
|
+
|
|
7
|
+
- [Installation Guide](../installation.md) - How to install and set up GCP integration
|
|
8
|
+
- [User & Usage Guide](../user_guide.md) - Complete command reference for GCP commands
|
|
9
|
+
- [Troubleshooting Guide](../troubleshooting.md) - Common issues and solutions
|
|
10
|
+
|
|
11
|
+
## Services Supported
|
|
12
|
+
|
|
13
|
+
- Compute Engine (Virtual machines)
|
|
14
|
+
- Cloud Storage (Buckets and lifecycle)
|
|
15
|
+
- VPC (Virtual Private Cloud and subnets)
|
|
16
|
+
- Cloud SQL (Managed databases)
|
|
17
|
+
- GKE (Google Kubernetes Engine)
|
|
18
|
+
|
|
19
|
+
## Quick Start Commands
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# List Compute Engine instances
|
|
23
|
+
ic gcp compute info
|
|
24
|
+
|
|
25
|
+
# List Cloud Storage buckets
|
|
26
|
+
ic gcp storage info
|
|
27
|
+
|
|
28
|
+
# List VPC networks & subnets
|
|
29
|
+
ic gcp vpc info
|
|
30
|
+
|
|
31
|
+
# List GKE clusters
|
|
32
|
+
ic gcp gke info
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
For more details, refer to the [User Guide](../user_guide.md).
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# IC CLI Installation & Configuration Setup
|
|
2
|
+
|
|
3
|
+
Complete guide for installing IC CLI and setting up configuration.
|
|
4
|
+
|
|
5
|
+
## 📦 1. Installation
|
|
6
|
+
|
|
7
|
+
### From PyPI (Recommended)
|
|
8
|
+
```bash
|
|
9
|
+
pip install ic-code
|
|
10
|
+
|
|
11
|
+
# Verify installation
|
|
12
|
+
ic --version
|
|
13
|
+
ic --help
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### From Source (Development)
|
|
17
|
+
```bash
|
|
18
|
+
git clone https://github.com/dgr009/ic.git
|
|
19
|
+
cd ic
|
|
20
|
+
|
|
21
|
+
python3 -m venv .venv
|
|
22
|
+
source .venv/bin/activate
|
|
23
|
+
|
|
24
|
+
pip install -e .
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## ⚙️ 2. Configuration Setup
|
|
30
|
+
|
|
31
|
+
IC CLI uses a secure two-file configuration system located in `~/.ic/config/`:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
~/.ic/config/
|
|
35
|
+
├── default.yaml # Non-sensitive configuration (regions, limits)
|
|
36
|
+
└── secrets.yaml # Sensitive API keys, tokens, and profiles
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Initialize Configuration
|
|
40
|
+
```bash
|
|
41
|
+
# Interactive setup
|
|
42
|
+
ic config init
|
|
43
|
+
|
|
44
|
+
# Validate configuration
|
|
45
|
+
ic config validate
|
|
46
|
+
|
|
47
|
+
# View current configuration (secrets masked)
|
|
48
|
+
ic config show
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Supported Cloud Credentials
|
|
52
|
+
- **AWS**: Native `~/.aws/config` & `~/.aws/credentials` or `secrets.yaml`
|
|
53
|
+
- **Tencent Cloud**: Native `~/.tencent/credentials` or `secrets.yaml`
|
|
54
|
+
- **GCP**: Application Default Credentials `gcloud auth application-default login`
|
|
55
|
+
- **OCI**: Native `~/.oci/config`
|
|
56
|
+
- **Cloudflare**: `api_token` in `secrets.yaml`
|
|
57
|
+
- **SSH**: Config file `~/.ssh/config` & key directory `~/.ssh/`
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# OCI Platform Documentation
|
|
2
|
+
|
|
3
|
+
This directory contains documentation for the OCI (Oracle Cloud Infrastructure) integration in IC CLI.
|
|
4
|
+
|
|
5
|
+
## Available Guides
|
|
6
|
+
|
|
7
|
+
- [Installation Guide](../installation.md) - How to install and set up OCI integration
|
|
8
|
+
- [User & Usage Guide](../user_guide.md) - Complete command reference for OCI commands
|
|
9
|
+
- [Troubleshooting Guide](../troubleshooting.md) - Common issues and solutions
|
|
10
|
+
|
|
11
|
+
## Services Supported
|
|
12
|
+
|
|
13
|
+
- Compute (VM Instances and Autonomous Container Instances)
|
|
14
|
+
- Object Storage & Block Volumes
|
|
15
|
+
- VCN & Subnets (Virtual Cloud Network)
|
|
16
|
+
- Network Security Groups (NSG)
|
|
17
|
+
- Load Balancers
|
|
18
|
+
- IAM Compartment hierarchy & Cost Management
|
|
19
|
+
|
|
20
|
+
## Quick Start Commands
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# List Compute VM instances
|
|
24
|
+
ic oci vm info
|
|
25
|
+
|
|
26
|
+
# List Virtual Cloud Networks
|
|
27
|
+
ic oci vcn info
|
|
28
|
+
|
|
29
|
+
# List Network Security Groups
|
|
30
|
+
ic oci nsg info
|
|
31
|
+
|
|
32
|
+
# Show Cost & Billing usage
|
|
33
|
+
ic oci cost usage
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
For more details, refer to the [User Guide](../user_guide.md).
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# IC CLI Release & Deployment Guide
|
|
2
|
+
|
|
3
|
+
Guide for building, versioning, and publishing IC CLI releases to PyPI.
|
|
4
|
+
|
|
5
|
+
## 📦 1. Build Requirements
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install build and publishing tools
|
|
9
|
+
pip install build twine
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 🚀 2. Release Steps
|
|
15
|
+
|
|
16
|
+
### Step 1: Bump Version
|
|
17
|
+
Update project version in `pyproject.toml` and `src/ic/__init__.py`:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Or run release script
|
|
21
|
+
./scripts/bump-version.sh patch
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Step 2: Build Package
|
|
25
|
+
```bash
|
|
26
|
+
# Clean previous build artifacts
|
|
27
|
+
rm -rf dist/ build/ *.egg-info
|
|
28
|
+
|
|
29
|
+
# Build wheel and source distribution
|
|
30
|
+
python3 -m build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Step 3: Publish to PyPI
|
|
34
|
+
```bash
|
|
35
|
+
# Upload via script
|
|
36
|
+
./scripts/deploy.sh 1.3.4 prod
|
|
37
|
+
|
|
38
|
+
# Or manually via twine
|
|
39
|
+
python3 -m twine upload dist/*
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Step 4: Tag Release in Git
|
|
43
|
+
```bash
|
|
44
|
+
git add -A
|
|
45
|
+
git commit -m "release: bump version to 1.3.4"
|
|
46
|
+
git tag -a v1.3.4 -m "Release v1.3.4"
|
|
47
|
+
|
|
48
|
+
git push origin main
|
|
49
|
+
git push origin v1.3.4
|
|
50
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# IC Security Guide
|
|
2
|
+
|
|
3
|
+
IC CLI includes built-in security auditing, secret scanning, and git hook integration to prevent accidental leakage of sensitive credentials.
|
|
4
|
+
|
|
5
|
+
## 🛡️ Core Security Features
|
|
6
|
+
|
|
7
|
+
- **Sensitive Data Masking**: Automatically masks API keys, tokens, and passwords in console outputs and logs (`***MASKED***`).
|
|
8
|
+
- **Secret Scanner**: Scans project files and staged git commits for hardcoded secrets.
|
|
9
|
+
- **Git Security Hooks**: Install pre-commit hooks to block commits containing sensitive data.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 🚀 Security Commands
|
|
14
|
+
|
|
15
|
+
### 1. Codebase Secret Scan
|
|
16
|
+
Scan current directory or specific path for hardcoded secrets, keys, or passwords:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Scan current repository
|
|
20
|
+
ic security scan
|
|
21
|
+
|
|
22
|
+
# Verbose output with file lines
|
|
23
|
+
ic security scan -v
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Pre-Commit Hook Management
|
|
27
|
+
Install or uninstall git pre-commit security scanner hooks:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Install pre-commit hook to current git repository
|
|
31
|
+
ic security install-hooks
|
|
32
|
+
|
|
33
|
+
# Uninstall pre-commit hook
|
|
34
|
+
ic security uninstall-hooks
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 🔒 Configuration Security Best Practices
|
|
40
|
+
|
|
41
|
+
1. **File Permissions**: Ensure configuration files have restricted permissions (`0o600`):
|
|
42
|
+
```bash
|
|
43
|
+
chmod 600 ~/.ic/config/secrets.yaml
|
|
44
|
+
chmod 600 ~/.aws/credentials
|
|
45
|
+
chmod 600 ~/.tencent/credentials
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
2. **Git Ignore**: Ensure `secrets.yaml` and `.env` files are included in your `.gitignore`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Tencent Cloud Services Guide
|
|
2
|
+
|
|
3
|
+
IC CLI provides comprehensive, production-grade management for **Tencent Cloud** resources.
|
|
4
|
+
|
|
5
|
+
## 📦 Supported Tencent Cloud Services
|
|
6
|
+
|
|
7
|
+
### 1. CVM (Cloud Virtual Machine)
|
|
8
|
+
- **Command**: `ic tencent cvm info`
|
|
9
|
+
- **Features**: List CVM instances across regions/accounts, displaying Instance ID, Name, State, CPU/Memory, Zone, Private/Public IPs, and attached Security Groups.
|
|
10
|
+
|
|
11
|
+
### 2. Lighthouse (Lightweight Application Server)
|
|
12
|
+
- **Command**: `ic tencent lighthouse info`
|
|
13
|
+
- **Features**: Query Lightweight server instances, blueprint/OS, status, and network configuration.
|
|
14
|
+
|
|
15
|
+
### 3. CLB (Cloud Load Balancer)
|
|
16
|
+
- **Commands**:
|
|
17
|
+
- `ic tencent clb info`: Inspect Load Balancers, listeners, rules, health check paths, and target instance health status.
|
|
18
|
+
- `ic tencent clb traffic`: Query network bandwidth statistics (Client Input/Output Bandwidth Avg/Max in Mbps) and total data transfer over a given period (default: 7 days, `-d 30` for 30 days).
|
|
19
|
+
|
|
20
|
+
### 4. VPC & Networking
|
|
21
|
+
- **Commands**: `ic tencent vpc info`, `ic tencent nat info`
|
|
22
|
+
- **Features**: Inspect Virtual Private Clouds, Subnets, and NAT Gateways.
|
|
23
|
+
|
|
24
|
+
### 5. TKE (Tencent Kubernetes Engine)
|
|
25
|
+
- **Command**: `ic tencent tke info`
|
|
26
|
+
- **Features**: List TKE Kubernetes clusters, version, status, and node pool details.
|
|
27
|
+
|
|
28
|
+
### 6. Security Groups
|
|
29
|
+
- **Commands**: `ic tencent sg info`, `ic tencent sg info -o tree`
|
|
30
|
+
- **Features**: Ingress/Egress rule inspection and visual tree representation of security group relations.
|
|
31
|
+
|
|
32
|
+
### 7. Profile & Authentication Management
|
|
33
|
+
- **Command**: `ic tencent profile info`
|
|
34
|
+
- **Features**: Validate credentials stored in `~/.tencent/credentials` or `secrets.yaml`, including STS AssumeRole configuration.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## ⚙️ Configuration Example (`~/.tencent/credentials`)
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
default:
|
|
42
|
+
secret_id: "AKIDxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
43
|
+
secret_key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
44
|
+
region: "ap-seoul"
|
|
45
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# IC CLI Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
Solutions and troubleshooting steps for common issues encountered when using IC CLI.
|
|
4
|
+
|
|
5
|
+
## ❓ Common Issues & Solutions
|
|
6
|
+
|
|
7
|
+
### 1. AWS Health API Error (`SubscriptionRequiredException`)
|
|
8
|
+
- **Symptom**: `ic aws healthdashboard reboot` execution fails with `AWS Business 또는 Enterprise Support 플랜이 필요합니다.`
|
|
9
|
+
- **Cause**: AWS Health API requires an active Business, Enterprise On-Ramp, or Enterprise Support plan.
|
|
10
|
+
- **Solution**: Run on accounts with Business/Enterprise support or check standard EC2 commands (`ic aws ec2 info`).
|
|
11
|
+
|
|
12
|
+
### 2. Missing AWS / Tencent Profiles
|
|
13
|
+
- **Symptom**: `❌ 조회를 진행할 AWS 계정을 찾을 수 없습니다.`
|
|
14
|
+
- **Cause**: No profiles found in `~/.aws/config`, `~/.aws/credentials`, or `~/.tencent/credentials`.
|
|
15
|
+
- **Solution**: Configure your credentials via `aws configure` / `ic config init` or specify account `-a profile_name`.
|
|
16
|
+
|
|
17
|
+
### 3. Permission Denied / Access Denied (`AccessDeniedException`)
|
|
18
|
+
- **Symptom**: API calls return permission errors.
|
|
19
|
+
- **Cause**: IAM user/role lacks required describe permissions (e.g., `ec2:DescribeInstances`, `health:DescribeEvents`).
|
|
20
|
+
- **Solution**: Grant appropriate read-only policy (`ReadOnlyAccess` or specific service describe actions) to the IAM entity.
|
|
21
|
+
|
|
22
|
+
### 4. Encoding Error (`UnicodeDecodeError` / `CP949`)
|
|
23
|
+
- **Symptom**: Character decoding errors on Windows.
|
|
24
|
+
- **Solution**: Set environment variable `PYTHONUTF8=1` in Windows PowerShell / CMD:
|
|
25
|
+
```powershell
|
|
26
|
+
$env:PYTHONUTF8=1
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 🔍 Debugging Mode
|
|
32
|
+
|
|
33
|
+
Enable verbose output to inspect full tracebacks and debug details:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
ic <platform> <service> <command> --verbose
|
|
37
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# IC (Infrastructure Commander) 사용자 종합 가이드
|
|
2
|
+
|
|
3
|
+
IC CLI는 **AWS**, **Tencent Cloud**, **GCP**, **OCI**, **Cloudflare**, **SSH** 서버 및 보안 설정을 단일 콘솔에서 통합 관리할 수 있는 멀티 클라우드 인프라 CLI 도구입니다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ⚡ 빠른 시작
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 1. 설치
|
|
11
|
+
pip install ic-code
|
|
12
|
+
|
|
13
|
+
# 2. 버전에 대한 정보 확인
|
|
14
|
+
ic --version
|
|
15
|
+
|
|
16
|
+
# 3. 설정 초기화 및 검증
|
|
17
|
+
ic config init
|
|
18
|
+
ic config show
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📦 플랫폼별 주요 명령어
|
|
24
|
+
|
|
25
|
+
### 1. 🟧 AWS Services
|
|
26
|
+
- **EC2 인스턴스 조회**: `ic aws ec2 info`
|
|
27
|
+
- **보안 그룹 (Ingress/Egress) 분석**: `ic aws sg info` / `ic aws sg info -o tree`
|
|
28
|
+
- **S3 버킷 및 태그 검증**: `ic aws s3 info` / `ic aws s3 tag_check`
|
|
29
|
+
- **EKS & ECS 클러스터**: `ic aws eks info` / `ic aws ecs info`
|
|
30
|
+
- **Health Dashboard EC2 재부팅 일정 점검**:
|
|
31
|
+
```bash
|
|
32
|
+
# 로컬 전 계정/프로필 자동 원터치 조회
|
|
33
|
+
ic aws healthdashboard reboot
|
|
34
|
+
|
|
35
|
+
# 명시적 전체 계정 조회
|
|
36
|
+
ic aws healthdashboard reboot -A
|
|
37
|
+
|
|
38
|
+
# 특정 계정 지정 및 마감(closed) 이력 포함 조회
|
|
39
|
+
ic aws healthdashboard reboot -a prod-account,stage-account --all-status
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 2. 🟦 Tencent Cloud Services
|
|
43
|
+
- **CVM (가상 서버)**: `ic tencent cvm info`
|
|
44
|
+
- **Lighthouse (경량 서버)**: `ic tencent lighthouse info`
|
|
45
|
+
- **CLB (로드 밸런서/헬스체크)**: `ic tencent clb info`
|
|
46
|
+
- **보안 그룹 (시각화 트리)**: `ic tencent sg info -o tree`
|
|
47
|
+
- **VPC / NAT / TKE**: `ic tencent vpc info` / `ic tencent nat info` / `ic tencent tke info`
|
|
48
|
+
- **자격 증명 확인**: `ic tencent profile info`
|
|
49
|
+
|
|
50
|
+
### 3. 🟩 GCP Services
|
|
51
|
+
- **Compute Engine**: `ic gcp compute info`
|
|
52
|
+
- **Cloud Storage**: `ic gcp storage info`
|
|
53
|
+
- **VPC & Firewall**: `ic gcp vpc info`
|
|
54
|
+
- **GKE & Cloud SQL**: `ic gcp gke info` / `ic gcp sql info`
|
|
55
|
+
|
|
56
|
+
### 4. 🟥 OCI (Oracle Cloud) Services
|
|
57
|
+
- **VM 인스턴스 & VCN**: `ic oci vm info` / `ic oci vcn info`
|
|
58
|
+
- **Load Balancer & NSG**: `ic oci lb info` / `ic oci nsg info`
|
|
59
|
+
- **IAM 컴파트먼트 & 비용**: `ic oci compartment info` / `ic oci cost usage`
|
|
60
|
+
|
|
61
|
+
### 5. 🟧 Cloudflare & 🟦 SSH Services
|
|
62
|
+
- **Cloudflare Zone & DNS**: `ic cf zone info` / `ic cf dns info`
|
|
63
|
+
- **SSH 서버 스캔 & 탐색**: `ic ssh info`
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 🛡️ Security & Settings
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# 코드베이스 보안 스캔 (하드코딩 시크릿 탐지)
|
|
71
|
+
ic security scan
|
|
72
|
+
|
|
73
|
+
# Pre-commit 훅 설치
|
|
74
|
+
ic security install-hooks
|
|
75
|
+
|
|
76
|
+
# 설정 검증 및 보기
|
|
77
|
+
ic config validate
|
|
78
|
+
ic config show
|
|
79
|
+
```
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ic-code"
|
|
7
|
-
version = "1.3.
|
|
7
|
+
version = "1.3.4"
|
|
8
8
|
authors = [
|
|
9
9
|
{name = "sykim", email = "cruiser594@gmail.com"},
|
|
10
10
|
]
|
|
@@ -87,7 +87,8 @@ dependencies = [
|
|
|
87
87
|
[project.optional-dependencies]
|
|
88
88
|
dev = [
|
|
89
89
|
"pytest>=8.0.0,<9.0.0",
|
|
90
|
-
"pytest-cov>=5.0.0,<
|
|
90
|
+
"pytest-cov>=5.0.0,<8.0.0",
|
|
91
|
+
"types-PyYAML>=6.0.0",
|
|
91
92
|
"black>=24.0.0,<25.0.0",
|
|
92
93
|
"flake8>=7.0.0,<8.0.0",
|
|
93
94
|
"mypy>=1.10.0,<2.0.0",
|
|
@@ -92,7 +92,7 @@ def filter_platforms_with_tests(platforms):
|
|
|
92
92
|
|
|
93
93
|
def main():
|
|
94
94
|
# All available platforms
|
|
95
|
-
ALL_PLATFORMS = ["
|
|
95
|
+
ALL_PLATFORMS = ["aws", "tencent", "gcp", "oci", "cf", "ssh"]
|
|
96
96
|
|
|
97
97
|
# Get environment variables
|
|
98
98
|
event_name = os.environ.get("GITHUB_EVENT_NAME", "")
|
|
@@ -12,7 +12,7 @@ import sys
|
|
|
12
12
|
def main():
|
|
13
13
|
# Get inputs
|
|
14
14
|
test_types_str = os.environ.get("TEST_TYPES", '["unit", "integration", "performance"]')
|
|
15
|
-
platforms_str = os.environ.get("PLATFORMS", '["
|
|
15
|
+
platforms_str = os.environ.get("PLATFORMS", '["aws", "tencent", "gcp", "oci", "cf", "ssh"]')
|
|
16
16
|
|
|
17
17
|
try:
|
|
18
18
|
test_types = json.loads(test_types_str)
|
|
@@ -174,11 +174,13 @@ setup(
|
|
|
174
174
|
"watchdog>=4.0.0,<6.0.0",
|
|
175
175
|
"cerberus>=1.3.5,<2.0.0",
|
|
176
176
|
"pydantic>=2.7.0,<3.0.0",
|
|
177
|
+
"tencentcloud-sdk-python>=3.0.0,<4.0.0",
|
|
177
178
|
],
|
|
178
179
|
extras_require={
|
|
179
180
|
"dev": [
|
|
180
181
|
"pytest>=8.0.0",
|
|
181
182
|
"pytest-cov>=5.0.0",
|
|
183
|
+
"types-PyYAML>=6.0.0",
|
|
182
184
|
"black>=24.0.0",
|
|
183
185
|
"flake8>=7.0.0",
|
|
184
186
|
"mypy>=1.10.0",
|
|
@@ -188,6 +190,7 @@ setup(
|
|
|
188
190
|
"pytest>=8.0.0",
|
|
189
191
|
"pytest-cov>=5.0.0",
|
|
190
192
|
"pytest-mock>=3.10.0",
|
|
193
|
+
"types-PyYAML>=6.0.0",
|
|
191
194
|
],
|
|
192
195
|
},
|
|
193
196
|
entry_points={
|
|
@@ -4,7 +4,7 @@ IC (Infra Resource Management CLI) - A comprehensive tool for managing cloud inf
|
|
|
4
4
|
This package provides CLI tools and libraries for managing AWS, GCP, OCI, CloudFlare, and SSH resources.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
__version__ = "1.3.
|
|
7
|
+
__version__ = "1.3.4"
|
|
8
8
|
__author__ = "SangYun"
|
|
9
9
|
__email__ = "cruiser594@gmail.com"
|
|
10
10
|
|