Skip to content

Commit d768b51

Browse files
juozasgJuozas
authored and
Juozas
committed
Support for GitOpsTemplates and UI improvements. Feature flags.
1 parent d09cb20 commit d768b51

File tree

117 files changed

+3432
-240
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+3432
-240
lines changed

.vscodeignore

+11-11
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ node_modules
1616
**/*.ts
1717

1818

19-
webview-ui/.vscode/**
20-
webview-ui/.vscode-test/**
21-
webview-ui/out/**
22-
webview-ui/node_modules/**
23-
webview-ui/src/**
24-
webview-ui/test
25-
webview-ui/node_modules
26-
webview-ui/**/tsconfig.json
27-
webview-ui/**/.eslintrc.json
28-
webview-ui/**/*.map
29-
webview-ui/**/*.ts
19+
webview-ui/**/.vscode/**
20+
webview-ui/**/.vscode-test/**
21+
webview-ui/**/out/**
22+
webview-ui/**/node_modules/**
23+
webview-ui/**/src/**
24+
webview-ui/**/test
25+
webview-ui/**/node_modules
26+
webview-ui/**/**/tsconfig.json
27+
webview-ui/**/**/.eslintrc.json
28+
webview-ui/**/**/*.map
29+
webview-ui/**/**/*.ts

configureGitOps/package-lock.json

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package-lock.json

+35-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+35-5
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,8 @@
5252
"pretest": "npm run compile-tests && npm run compile && npm run lint",
5353
"lint": "eslint src --ext ts",
5454
"test": "node ./out/test/runTest.js",
55-
"start:webview": "npm --prefix ./webview-ui run start",
56-
"install:webview": "npm --prefix ./webview-ui install",
57-
"build:webview": "npm --prefix ./webview-ui run build",
58-
"watch:webview": "npm --prefix ./webview-ui run watch"
55+
"install:webview": "npm --prefix ./webview-ui run install",
56+
"build:webview": "npm --prefix ./webview-ui run build"
5957
},
6058
"contributes": {
6159
"commands": [
@@ -142,7 +140,7 @@
142140
},
143141
{
144142
"command": "gitops.views.refreshResourcesTreeView",
145-
"title": "Refresh Sources View",
143+
"title": "Refresh Resources Views",
146144
"category": "GitOps",
147145
"icon": "$(refresh)"
148146
},
@@ -217,6 +215,11 @@
217215
"command": "gitops.dev.showGlobalState",
218216
"title": "Show Global State",
219217
"category": "GitOps"
218+
},
219+
{
220+
"command": "gitops.views.createFromTemplate",
221+
"title": "Create from Template",
222+
"category": "GitOps"
220223
}
221224
],
222225
"viewsContainers": {
@@ -242,12 +245,27 @@
242245
"id": "gitops.views.workloads",
243246
"name": "Workloads"
244247
},
248+
{
249+
"id": "gitops.views.templates",
250+
"name": "Templates",
251+
"when": "config.gitops.weaveGitopsEnterprise"
252+
},
245253
{
246254
"id": "gitops.views.documentation",
247255
"name": "Documentation"
248256
}
249257
]
250258
},
259+
"configuration": {
260+
"title": "GitOps Tools",
261+
"properties": {
262+
"gitops.weaveGitopsEnterprise": {
263+
"type": "boolean",
264+
"default": false,
265+
"description": "Enable WGE GitOpsTemplates feature"
266+
}
267+
}
268+
},
251269
"viewsWelcome": [
252270
{
253271
"view": "gitops.views.clusters",
@@ -341,6 +359,11 @@
341359
"group": "navigation@1",
342360
"when": "view == gitops.views.workloads"
343361
},
362+
{
363+
"command": "gitops.views.refreshResourcesTreeView",
364+
"group": "navigation@1",
365+
"when": "view == gitops.views.templates"
366+
},
344367
{
345368
"command": "gitops.views.showWorkloadsHelpMessage",
346369
"group": "navigation@2",
@@ -426,6 +449,11 @@
426449
"command": "gitops.flux.trace",
427450
"when": "view == gitops.views.workloads && viewItem != Namespace;",
428451
"group": "navigation@4"
452+
},
453+
{
454+
"command": "gitops.views.createFromTemplate",
455+
"group": "1",
456+
"when": "view == gitops.views.templates"
429457
}
430458
],
431459
"explorer/context": [
@@ -532,6 +560,7 @@
532560
"@types/node": "14.x",
533561
"@types/semver": "^7.3.9",
534562
"@types/shelljs": "^0.8.11",
563+
"@types/uuid": "^9.0.1",
535564
"@types/vscode": "^1.59.0",
536565
"@types/vscode-webview": "^1.57.0",
537566
"@types/which": "^2.0.1",
@@ -559,6 +588,7 @@
559588
"shell-escape-tag": "^2.0.2",
560589
"shelljs": "^0.8.5",
561590
"tinytim": "^0.1.1",
591+
"uuid": "^9.0.0",
562592
"vscode-kubernetes-tools-api": "^1.3.0"
563593
},
564594
"activationEvents": [],

src/commands.ts

+4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { telemetry } from './extension';
2929
import { showOutputChannel } from './output';
3030
import { TelemetryErrorEventNames } from './telemetry';
3131
import { refreshAllTreeViews, refreshResourcesTreeViews } from './views/treeViews';
32+
import { createFromTemplate } from './commands/createFromTemplate';
3233

3334
/**
3435
* Command ids registered by this extension
@@ -41,6 +42,7 @@ export const enum CommandId {
4142
* Opens the provided resource in the editor. Can be a text or binary file, or an http(s) URL.
4243
*/
4344
VSCodeOpen = 'vscode.open',
45+
VSCodeReload = 'workbench.action.reloadWindow',
4446
/**
4547
* Set vscode context to use in keybindings/menus/welcome views
4648
* @see https://code.visualstudio.com/api/references/when-clause-contexts
@@ -90,6 +92,7 @@ export const enum CommandId {
9092
ShowInstalledVersions = 'gitops.showInstalledVersions',
9193
InstallFluxCli = 'gitops.installFluxCli',
9294
ShowGlobalState = 'gitops.dev.showGlobalState',
95+
CreateFromTemplate = 'gitops.views.createFromTemplate',
9396
}
9497

9598
let _context: ExtensionContext;
@@ -148,6 +151,7 @@ export function registerCommands(context: ExtensionContext) {
148151
registerCommand(CommandId.ShowInstalledVersions, showInstalledVersions);
149152
registerCommand(CommandId.InstallFluxCli, installFluxCli);
150153
registerCommand(CommandId.ShowGlobalState, showGlobalState);
154+
registerCommand(CommandId.CreateFromTemplate, createFromTemplate);
151155
}
152156

153157
/**

src/commands/addKustomization.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { openConfigureGitOpsPanel } from '../webview-backend/configureGitOps/openPanel';
1+
import { openConfigureGitOpsWebview } from '../webview-backend/configureGitOps/openWebview';
22
import { SourceNode } from '../views/nodes/sourceNode';
33
import { FluxSourceKinds } from '../kubernetes/types/flux/object';
44

@@ -16,5 +16,5 @@ export async function addKustomization(sourceNode?: SourceNode) {
1616
sourceObject = undefined;
1717
}
1818

19-
openConfigureGitOpsPanel(true, sourceObject);
19+
openConfigureGitOpsWebview(true, sourceObject);
2020
}

src/commands/addSource.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { openConfigureGitOpsPanel } from '../webview-backend/configureGitOps/openPanel';
1+
import { openConfigureGitOpsWebview } from '../webview-backend/configureGitOps/openWebview';
22

33
/**
44
* Open ConfigureGitops webview with 'New Source' tab open
55
*/
66
export async function addSource() {
7-
openConfigureGitOpsPanel(false);
7+
openConfigureGitOpsWebview(false);
88
}

src/commands/createFromTemplate.ts

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import * as vscode from 'vscode';
2+
import { GitOpsTemplateNode } from '../views/nodes/gitOpsTemplateNode';
3+
import { openCreateFromTemplatePanel } from '../webview-backend/createFromTemplate/openWebview';
4+
5+
export async function createFromTemplate(templateNode?: GitOpsTemplateNode) {
6+
// const name = await window.showQuickPick(['cluster-template-development', 'cluster-template-development-plus-kubelogin']);
7+
8+
if(!templateNode || !templateNode.resource) {
9+
return;
10+
}
11+
12+
// TODO: const resource = yaml.parseDocument(yourYamlFile);
13+
openCreateFromTemplatePanel(templateNode.resource);
14+
}

src/commands/createGitRepositoryForPath.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { failed } from '../errorable';
44
import { getFolderGitInfo } from '../git/gitInfo';
55
import { checkGitVersion } from '../install';
66
import { getCurrentClusterInfo } from '../views/treeViews';
7-
import { openConfigureGitOpsPanel } from '../webview-backend/configureGitOps/openPanel';
7+
import { openConfigureGitOpsWebview } from '../webview-backend/configureGitOps/openWebview';
88

99
/**
1010
* Add git repository source whether from an opened folder
@@ -57,5 +57,5 @@ export async function createGitRepositoryForPath(fileExplorerUri?: Uri) {
5757
gitInfo = await getFolderGitInfo(gitFolderFsPath);
5858
}
5959

60-
openConfigureGitOpsPanel(false, '', {createWorkload: false}, gitInfo);
60+
openConfigureGitOpsWebview(false, '', {createWorkload: false}, gitInfo);
6161
}

src/commands/createKustomizationForPath.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { failed } from '../errorable';
44
import { getFolderGitInfo, getGitRepositoryforGitInfo } from '../git/gitInfo';
55
import { namespacedObject } from '../kubernetes/types/flux/object';
66
import { getCurrentClusterInfo } from '../views/treeViews';
7-
import { openConfigureGitOpsPanel } from '../webview-backend/configureGitOps/openPanel';
7+
import { openConfigureGitOpsWebview } from '../webview-backend/configureGitOps/openWebview';
88

99
/**
1010
* Create kustomization from File Explorer context menu
@@ -55,7 +55,7 @@ export async function createKustomizationForPath(fileExplorerUri?: Uri): Promise
5555
const selectSource = !!gr;
5656
let sourceName = namespacedObject(gr) || '';
5757

58-
openConfigureGitOpsPanel(selectSource, sourceName, {
58+
openConfigureGitOpsWebview(selectSource, sourceName, {
5959
kustomization: {
6060
path: relativeKustomizationPath,
6161
},

0 commit comments

Comments
 (0)