Skip to content
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# 2.11.0

- Upgrade default Camel JBang version from 4.18.0 to 4.19.0
- Add `Infrastructure` section into Kaoto view
- list running infrastructure services
- start/stop/restart infrastructure service

# 2.10.2

Expand Down
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,15 @@ You can follow [Installation Guide](https://kaoto.io/docs/installation) on a Kao
2. Install **JBang**
3. Install the **Kaoto extension** from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto) or [Open VSX Registry](https://open-vsx.org/extension/redhat/vscode-kaoto)

### Requirements for Infrastructure Services

To use the **Infrastructure Services** feature (e.g., running Kafka, databases, etc.), you need a container runtime:

- **Docker** or **Podman** must be installed and running
- The container runtime must be accessible from the command line

If you don't have a container runtime installed, we recommend [Podman Desktop](https://podman-desktop.io) as a free, open-source alternative to Docker Desktop.

## Documentation

Learn more about Kaoto and how to use it effectively:
Expand Down
2 changes: 1 addition & 1 deletion it-tests/Util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ export async function expandViews(kaotoView: SideBarView | undefined, ...views:
export async function getKaotoViewControl(): Promise<{ kaotoViewContainer: ViewControl | undefined; kaotoView: SideBarView | undefined }> {
const kaotoViewContainer = await new ActivityBar().getViewControl('Kaoto');
const kaotoView = await kaotoViewContainer?.openView();
await collapseViews(kaotoView, 'Integrations', 'Deployments', 'OpenAPI', 'Tests', 'Help & Feedback');
await collapseViews(kaotoView, 'Integrations', 'Deployments', 'OpenAPI', 'Tests', 'Infrastructure', 'Help & Feedback');
return { kaotoViewContainer, kaotoView };
}

Expand Down
123 changes: 120 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -501,6 +501,41 @@
"category": "Kaoto",
"icon": "$(clear-all)"
},
{
"command": "kaoto.infrastructure.start",
"title": "Start Infra Service...",
"category": "Kaoto",
"icon": "$(add)",
"enablement": "!kaoto.infrastructureStarting"
},
{
"command": "kaoto.infrastructure.refresh",
"title": "Refresh",
"category": "Kaoto",
"icon": "$(refresh)"
},
{
"command": "kaoto.infrastructure.stop",
"title": "Stop Infra Service",
"category": "Kaoto",
"icon": "$(circle-slash)"
},
{
"command": "kaoto.infrastructure.logs",
"title": "Follow Infra Logs",
"category": "Kaoto",
"icon": "$(terminal)"
},
{
"command": "kaoto.infrastructure.copyUrl",
"title": "Copy URL",
"category": "Kaoto"
},
{
"command": "kaoto.infrastructure.copyPort",
"title": "Copy Port",
"category": "Kaoto"
},
{
"command": "kaoto.openapi.refresh",
"title": "Refresh",
Expand Down Expand Up @@ -703,6 +738,26 @@
{
"command": "kaoto.openapi.import",
"when": "false"
},
{
"command": "kaoto.infrastructure.start",
"when": "false"
},
{
"command": "kaoto.infrastructure.stop",
"when": "false"
},
{
"command": "kaoto.infrastructure.logs",
"when": "false"
},
{
"command": "kaoto.infrastructure.copyUrl",
"when": "false"
},
{
"command": "kaoto.infrastructure.copyPort",
"when": "false"
}
],
"editor/title": [
Expand Down Expand Up @@ -770,6 +825,16 @@
"group": "navigation@2",
"when": "view == kaoto.tests && kaoto.testResultsExist"
},
{
"command": "kaoto.infrastructure.start",
"group": "navigation@1",
"when": "view == kaoto.infrastructure && !virtualWorkspace && kaoto.jbangAvailable"
},
{
"command": "kaoto.infrastructure.refresh",
"group": "navigation@2",
"when": "view == kaoto.infrastructure"
},
{
"command": "kaoto.openapi.refresh",
"group": "navigation@2",
Expand Down Expand Up @@ -872,6 +937,26 @@
"when": "view == kaoto.tests && viewItem == test-folder && kaoto.jbangAvailable",
"group": "inline@1"
},
{
"command": "kaoto.infrastructure.stop",
"when": "view == kaoto.infrastructure && viewItem =~ /^infrastructure-service.*/",
"group": "inline@1"
},
{
"command": "kaoto.infrastructure.logs",
"when": "view == kaoto.infrastructure && viewItem =~ /^infrastructure-service(?!-external).*/",
"group": "inline@2"
},
{
"command": "kaoto.infrastructure.copyUrl",
"when": "view == kaoto.infrastructure && viewItem =~ /.*-has-url.*/",
"group": "navigation@1"
},
{
"command": "kaoto.infrastructure.copyPort",
"when": "view == kaoto.infrastructure && viewItem =~ /.*-has-port.*/",
"group": "navigation@2"
},
{
"command": "kaoto.openapi.showSource",
"when": "view == kaoto.openapi && viewItem == openapi",
Expand Down Expand Up @@ -911,6 +996,16 @@
"view": "kaoto.tests",
"contents": "In order to start with Citrus, you can create a new Citrus Test file.\n[New Citrus Test...](command:kaoto.citrus.jbang.init.test)\nTo learn more about Camel Testing [read docs](https://camel.apache.org/manual/camel-jbang-test.html).",
"when": "!virtualWorkspace && kaoto.jbangAvailable && workspaceFolderCount > 0"
},
{
"view": "kaoto.infrastructure",
"contents": "Run local infrastructure services with Camel Infra.\n[Start Infrastructure Service...](command:kaoto.infrastructure.start)\nRunning services appear here with startup status, logs, stop actions, and service details.",
"when": "!virtualWorkspace && kaoto.jbangAvailable && workspaceFolderCount > 0"
},
{
"view": "kaoto.infrastructure",
"contents": "You have not yet added a folder to the workspace.\n[Open Folder](command:vscode.openFolder)",
"when": "workspaceFolderCount == 0"
}
],
"configuration": [
Expand Down Expand Up @@ -943,9 +1038,9 @@
"markdownDescription": "Camel version used for internal Camel JBang CLI commands execution. As default Camel Version is used `#kaoto.camelJbang.version#`.",
"order": 2
},
"kaoto.deployments.refresh.interval": {
"kaoto.views.refresh.interval": {
"type": "number",
"markdownDescription": "Set default auto-refresh interval in milliseconds for a `Kaoto > Deployments` view. **Default recommended interval is 30s.**",
"markdownDescription": "Set default auto-refresh interval in milliseconds for a views (Deployments, Infrastructure). **Default recommended interval is 30s.**",
Comment thread
djelinek marked this conversation as resolved.
"enum": [
1000,
5000,
Expand Down Expand Up @@ -996,7 +1091,8 @@
"*.citrus.it.yaml",
"*.citrus-test.yaml",
"*.citrus-it.yaml",
"jbang.properties"
"jbang.properties",
"citrus*.properties"
],
"markdownDescription": "Regular expression to filter files to be displayed in `Kaoto > Tests` view.",
"scope": "window",
Expand Down Expand Up @@ -1138,6 +1234,19 @@
"--dev"
],
"order": 5
},
"kaoto.camelJbang.infraArguments": {
"type": "array",
"uniqueItems": true,
"items": {
"type": "string"
},
"additionalProperties": false,
"markdownDescription": "User defined arguments to be applied by default when starting services from `Kaoto > Infrastructure`. (See [Camel Infra Run](https://camel.apache.org/manual/jbang-commands/camel-jbang-infra-run.html))",
"default": [
"--log"
],
"order": 6
}
}
},
Expand Down Expand Up @@ -1246,6 +1355,14 @@
"icon": "icons/kaoto.png",
"initialSize": 2
},
{
"id": "kaoto.infrastructure",
"name": "Infrastructure",
"contextualTitle": "Kaoto",
"icon": "icons/kaoto.png",
"initialSize": 2,
"when": "!virtualWorkspace"
},
{
"id": "kaoto.help",
"name": "Help & Feedback",
Expand Down
Loading
Loading