Skip to content

JulienBreux/run-cli

Repository files navigation

Cloud Run Interactive CLI

Run CLI is an interactive CLI to manage your Google Cloud Run resources in a visual way.

The idea is to establish a high-performance, terminal-based alternative to the Google Cloud Console for executing daily operational tasks.

Go version Go Report Card codecov Release LICENSE

⭐️ Value Proposition

  • Visual Resource Management: Offers a sophisticated visual representation of cloud resources using interactive tables and dashboards, providing superior clarity over standard flat CLI output.
  • Interactive Discoverability: Simplifies the management of complex settings through intuitive interactive menus, eliminating the need to memorize extensive and complex command-line flags.
  • Rapid Context Switching: Enables instantaneous switching between different Google Cloud projects and regions within a single, continuous terminal session.

✨ Features

🌍 Global

  • Interactive TUI: A user-friendly terminal interface to manage your Cloud Run resources.
  • Project & Region Selection: Easily switch between your Google Cloud projects and regions.
  • Log Viewer: Stream logs from your services directly in the terminal.
  • Konami Code: Try the legendary code for a little surprise!

🚀 Services

  • Service Management: View, search, and manage your Cloud Run services.
  • Authentication Management: Toggle between "Require authentication" and "Allow unauthenticated invocations" directly from the interface.
  • Service Dashboard: Navigate to a dedicated dashboard for each service with multiple views.
  • Service Proxy: Locally proxy private services with automatic authentication token injection (press p).
  • Networking View: Monitor ingress settings, endpoints status (URI, IAP), and VPC Access configurations.
  • Security View: Check authentication requirements, service identity, encryption keys, and binary authorization policies.
  • Revision Management: Detailed list of revisions with traffic allocation, tags, and deployment history.
  • Deep Insights: Explore revision details including billing mode, startup CPU boost, concurrency, and request timeouts.
  • Resource Monitoring: View container configurations, images, ports, and resource limits (Memory, CPU, and GPU/Accelerators).

⚡ Jobs

  • Job Management: Monitor and manage your Cloud Run jobs.
  • Job Dashboard: Dedicated view for jobs including execution history and status.
  • Execution Management: View detailed execution history with task success/failure counts, duration, and status.

👷 Worker Pools

  • Worker Pool Management: View and manage your Cloud Run worker pools.
  • Scaling Control: Monitor and adjust scaling settings.

🌐 Domain Mappings

  • Domain Management: View your custom domain mappings.
  • DNS Configuration: Quickly access DNS record instructions for easy setup.

🚀 Installation

Run CLI is available on Linux, OSX and Windows platforms.

  • Binaries for Mac OS, Linux and Windows are available as tarballs in the release page.

  • Via Homebrew (Mac OS) or LinuxBrew (Linux)

    brew tap julienbreux/run
    brew install --cask julienbreux/run/run
  • Via go get

    You can install Run CLI using go install:

    go install github.com/JulienBreux/run-cli/cmd/run@latest
  • Via CURL

    You can install Run CLI using CURL and the shell script:

    curl -sL https://JulienBreux.github.io/run-cli/get | sh

▶️ Usage

Simply run the command:

gcloud auth application-default login # Currently mandatory :/
run

This will start the interactive TUI, allowing you to manage your Google Cloud Run resources.

🛠️ Development

This project uses a Makefile to streamline development.

Prerequisites

  • Go
  • Docker (for building the Docker image)

Build from source

To build the binary from source, run:

make build

This will create the run executable in the ./bin directory.

Running tests

To run the unit tests:

make test

Linting

To lint the codebase:

make lint

💪 Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue.

📄 License

This project is licensed under the Apache 2.0 License. See the LICENSE file for details.

Contributors 2

  •  
  •  

Languages