Skip to content

About

Tools used to interact with BIG-IPs for qkviews, MyF5 for support case creation/update and iHealth for qkview uploads

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

F5 Support Case Creation & QKView Automation Toolset (qkviewmgr)

Security & Supply Chain CodeQL Analysis Secret & Credential Leak Scan Python 3.10+ OCI Container Image

Generates proactive and reactive support cases using MyF5 and iHealth; includes automated BIG-IP QKView generation, chunked retrieval, remote disk purge, TLS 1.3 iHealth upload, native desktop GUI, interactive terminal wizard, and hardened multi-architecture OCI container images.


Overview & Architecture

This toolset automates the complete lifecycle of opening F5 support cases and managing QKView diagnostics:

+---------------------------------------------------------------------------------------+
|                                    qkviewmgr CLI                                      |
|                                                                                       |
|   +-------------------+  +--------------------+  +----------------+  +------------+   |
|   |  run / auto-pilot |  | native desktop gui |  | terminal wizard|  |   doctor   |   |
|   +-------------------+  +--------------------+  +----------------+  +------------+   |
+-------------------------------------------+-------------------------------------------+
                                            |
                    +-----------------------+-----------------------+
                    |                                               |
         [BIG-IP Appliance]                                [F5 Cloud APIs]
        (iControl REST API)                       (Auth0 IDP / MyF5 / iHealth)
      - Connectivity test                      - TLS 1.3 Streaming QKView Upload
      - Non-truncating QKView (-s0)            - Support Case Creation & Commenting
      - Chunked download with progress         - Diagnostic Analysis Polling
      - Remote disk purge

Compatible with Python 3.10 through 3.14, as well as pre-built Docker & Podman multi-arch container images requiring zero local runtime dependencies.


Documentation Index

Detailed guides are organized by topic in the docs/ directory:

Topic Guide Key Contents
Quick Start & Setup Getting Started Guide Virtual environment setup, package installation, lockfile installation, and test suite.
Credentials & Auth Credentials & Secret Management Zero-secret CLI rules, interactive masked prompts, environment variables, and ~/.ihealth_credentials.
CLI Reference Primary CLI Orchestrator (qkviewmgr) run (Auto-Pilot), doctor, and modular bigip, ihealth, and case subcommands.
Graphical & Wizard UIs GUI & Terminal Wizard Guide Native desktop GUI (strictly NO web services) and interactive terminal wizard.
Container Deployment Container Deployment Guide (Docker / Podman) Multi-arch OCI image, GHCR registry, volume mounting, and unprivileged non-root security.
Security & Supply Chain Security & Supply Chain Posture GitHub Advanced Security (GHAS), CodeQL AST analysis, hash pinning, pip-audit, and secret scanning.
Network & Firewall Network Egress & Firewall Guidelines F5 Articles K15202 & K000162308, port 443 egress rules, TLS 1.2+ configuration, and ciphers.
Developer Scripts Individual Developer Scripts Reference 14 standalone modular scripts under examples/ for custom integrations and workflows.

30-Second Quick Start

1. Installation

git clone https://github.com/SalesAmerSP/f5_support_case_creation_api_tools.git
cd f5_support_case_creation_api_tools
pip install -e .

Or run with zero local Python dependencies via Docker / Podman:

docker pull ghcr.io/salesamersp/f5_support_case_creation_api_tools:latest
docker run --rm -it -v $(pwd):/data ghcr.io/salesamersp/f5_support_case_creation_api_tools:latest doctor

2. Configure Credentials

Export environment variables or let the tool prompt you interactively:

export BIGIP_USERNAME="admin"
export BIGIP_PASSWORD="YourAppliancePassword"
export F5_CLIENT_ID="YourF5SupportAPIClientID"
export F5_CLIENT_SECRET="YourF5SupportAPIClientSecret"

3. Run Pre-flight Audit

qkviewmgr doctor

4. Execute One-Touch Auto-Pilot

qkviewmgr run --host 192.0.2.1 --no-ssl-verify

Clean Repository Structure

f5_support_case_creation_api_tools/
├── src/qkviewmgr/            # Canonical PEP 517/621 Python package & core engine
│   ├── __init__.py           # Package exports
│   ├── __main__.py           # Executable entrypoint (`python -m qkviewmgr`)
│   ├── qkviewmgr.py          # Unified CLI dispatcher & Auto-Pilot orchestrator
│   ├── f5functions.py        # Core iControl REST, iHealth, & MyF5 client
│   ├── gui.py                # Native desktop GUI (strictly NO web services)
│   └── wizard.py             # Interactive terminal wizard
├── docs/                     # Modular documentation guides by topic
│   ├── getting_started.md    # Installation & quick start
│   ├── credentials.md        # Credential handling & zero-secret security
│   ├── cli.md                # Full CLI command and options reference
│   ├── gui_and_wizard.md     # Desktop GUI and terminal wizard
│   ├── container.md          # Docker & Podman containerized deployment
│   ├── security_and_ghas.md  # GitHub Advanced Security & supply chain
│   └── network_and_firewall.md # F5 K15202/K000162308 network egress
├── examples/                 # Standalone developer scripts for custom workflows
│   ├── README.md             # Developer integration guide & index
│   ├── bigip_*.py            # Standalone BIG-IP utilities
│   ├── ihealth_*.py          # Standalone iHealth utilities
│   └── myf5_*.py             # Standalone MyF5 case utilities
├── tests/                    # Comprehensive unit & integration tests (96/96 passing)
│   ├── test_f5functions.py   # Core API functions and credential resolution
│   ├── test_qkviewmgr.py     # CLI dispatcher and command handlers
│   ├── test_cli.py           # CLI argument parsing and flags
│   ├── test_gui.py           # Headless GUI tests and signal handling
│   ├── test_wizard.py        # Terminal wizard interaction tests
│   └── test_live_integration.py # Live TMOS appliance integration tests
├── .github/                  # CI/CD, GHAS CodeQL, Dependabot, Container workflows
│   └── workflows/
│       ├── test.yml          # Automated pytest matrix across Python 3.10-3.13 & OS
│       ├── container.yml     # Multi-arch Docker build & push to GHCR
│       ├── codeql.yml        # CodeQL static analysis
│       ├── security-audit.yml# Hash-pinned verification & pip-audit
│       ├── secret-scan.yml   # Gitleaks secret detection
│       └── dependency-review.yml # PR dependency review
├── Dockerfile                # Hardened unprivileged multi-arch container spec
├── .dockerignore             # Container build exclusion list
├── .env.example              # Example environment configuration template
├── requirements.lock         # Cryptographically hash-pinned dependencies
├── requirements.txt          # Root dependency pointer
└── pyproject.toml            # Project packaging & pytest configuration

Individual Developer Scripts

All 14 individual standalone scripts are maintained under examples/ for custom integrations:

See examples/README.md for full descriptions and usage patterns.


Running Automated Tests

Run the full automated test suite (96 tests passing across Python 3.10 through 3.14):

Inside the Execution Container:

# Run full pytest suite inside the container
podman exec -w /home/appuser/f5_support_case_creation_api_tools tmos-cert-lab pytest tests/ -v

# Run system doctor pre-flight audit inside the container
podman exec -w /home/appuser/f5_support_case_creation_api_tools tmos-cert-lab qkviewmgr doctor

On Local Host / Virtual Environment:

# Run with pytest
pytest tests/ -v

# Or run with standard unittest discovery
python3 -m unittest discover -s tests -v

Support Disclaimer

Caution

This is a community automation toolset and is not an official F5 product. Support is not provided by F5 Technical Support. Usage is at your own risk. Please report bugs or submit enhancements via GitHub Issues.

About

Tools used to interact with BIG-IPs for qkviews, MyF5 for support case creation/update and iHealth for qkview uploads

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages