A Visual Studio Code extension for Armada, the multi-Kubernetes cluster batch job scheduler.
- Job Submission: Submit Armada jobs directly from YAML files in VSCode
- Job Management: View, monitor, and cancel jobs from the sidebar
- Queue Browsing: Browse and filter Armada queues and job sets
- Real-time Updates: Auto-refresh job status with configurable intervals
- YAML Validation: IntelliSense and schema validation for Armada job definitions
- Multi-Context Support: Switch between different Armada clusters
- Job Logs: View job logs directly in VSCode
- gRPC Integration: Native gRPC client for fast communication with Armada API
-
Package the extension:
npm install npm run compile npm run package
-
Install the generated
.vsixfile in VSCode:- Open VSCode
- Press
Ctrl+Shift+P(orCmd+Shift+Pon macOS) - Type "Install from VSIX" and select the file
Run the command Armada: Setup Configuration or create ~/.armadactl.yaml:
currentContext: local
contexts:
- name: local
armadaUrl: localhost:30002
execTimeout: 2m-
Create a file with
.armada.yamlextension (e.g.,hello-world.armada.yaml) -
Write your job definition:
queue: default jobSetId: my-job-set jobs: - priority: 1000 namespace: default podSpec: containers: - name: hello image: busybox command: ["echo", "Hello from Armada!"]
-
Click the cloud upload icon in the editor or run
Armada: Submit Job
- Open the Armada sidebar (activity bar icon)
- View running and completed jobs
- Click on a job to see details
- Use the refresh button to update job status
Access these commands via Command Palette (Ctrl+Shift+P or Cmd+Shift+P):
| Command | Description |
|---|---|
Armada: Submit Job |
Submit the current YAML file as an Armada job |
Armada: Refresh Jobs |
Manually refresh the job list |
Armada: Refresh Jobs (Query API) |
Refresh jobs using the Query API |
Armada: Setup Configuration |
Configure Armada connection settings |
Armada: Switch Context |
Switch between configured Armada clusters |
Armada: Cancel Job |
Cancel a selected job |
Armada: View Job Logs |
View logs for a selected job |
Armada: Browse Queues |
Browse all available queues |
Armada: Browse Active Queues |
Browse queues with active jobs |
Armada: Load Job Set |
Load a specific job set for monitoring |
Armada: Browse Job Sets |
Browse and filter job sets |
Armada: Clear All Monitored Job Sets |
Clear the list of monitored job sets |
Configure the extension in VSCode Settings (File → Preferences → Settings → Armada):
| Setting | Default | Description |
|---|---|---|
armada.configPath |
~/.armadactl.yaml |
Path to armadactl configuration file |
armada.autoRefresh |
true |
Automatically refresh job status |
armada.refreshInterval |
5000 |
Auto-refresh interval in milliseconds |
armada.maxJobsToShow |
100 |
Maximum number of jobs to display |
Want to run a local Armada cluster for testing? We provide a complete development environment:
cd dev
make up # Start local Armada cluster with kind
make status # Check cluster status
make logs # View operator logs
make down # Tear down the clusterThis creates a local Kubernetes cluster with Armada installed and ready to use. See operator/README.md for details.
See DEVELOPMENT.md for detailed development instructions.
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Start watch mode for auto-recompilation
npm run watch
# Press F5 in VSCode to launch Extension Development HostThis project uses GitHub Actions for automated building, testing, and publishing:
- CI Workflow: Automatically runs on pull requests to validate code quality, run tests, and build the extension
- Release Please: Manages versioning and changelogs using Conventional Commits
- Publish Workflow: Automatically publishes new releases to the VS Code Marketplace
See .github/workflows/README.md for detailed workflow documentation.
- Make changes on feature branches
- Create PR to
devbranch with conventional commit messages - Merge approved PRs to
dev - Merge
devtomainwhen ready for release - Release Please creates a release PR with auto-generated changelog
- Merge the release PR to trigger publication to the marketplace
armada-vscode/
├── src/ # TypeScript source code
│ ├── commands/ # Command implementations
│ ├── config/ # Configuration management
│ ├── grpc/ # gRPC client
│ ├── providers/ # TreeView providers
│ ├── proto/ # Protobuf definitions
│ └── types/ # TypeScript types
├── schemas/ # JSON schemas for YAML validation
├── examples/ # Example job files
├── dev/ # Development tools
│ ├── operator/ # Local Armada operator setup
│ ├── scripts/ # Development scripts
│ └── Makefile # Local cluster automation
└── resources/ # Extension resources (icons, etc.)
- VSCode 1.85.0 or higher
- Node.js 20.x or higher (for development)
- Access to an Armada cluster (or use the local development setup)
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
See LICENSE for details.