{
	"name": "Go",
	"dockerFile": "Dockerfile",
	"runArgs": [
		"--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined",
		// Mount go mod cache
		"-v", "k8sinfra-gomodcache:/go/pkg",
		// Cache vscode exentsions installs and homedir
		"-v", "k8sinfra-vscodecache:/root/.vscode-server",
		// Keep command history 
		"-v", "k8sinfra-bashhistory:/root/commandhistory",
		// Mount docker socket for docker builds
		"-v", "/var/run/docker.sock:/var/run/docker.sock",
		// Use host network
		"--network=host",
		// Mount ssh 
		"-v", "${env:HOME}${env:USERPROFILE}/.ssh:/root/.ssh",
		// Mount azure, git and kubernetes config dirs
		"-v", "${env:HOME}${env:USERPROFILE}/.azure:/root/.azure",
		"-v", "${env:HOME}${env:USERPROFILE}/.gitconfig:/root/.gitconfig", // Required due to volume mount used for .vscode-server
		"-v", "${env:HOME}${env:USERPROFILE}/.kube:/root/.kube"
	],
	"workspaceMount": "src=${localWorkspaceFolder},dst=/workspace,type=bind,consistency=delegated",
	"workspaceFolder": "/workspace",
	"settings": {
		"go.gopath": "/go",
		"go.useLanguageServer": true,
		"[go]": {
			"editor.snippetSuggestions": "none",
			"editor.formatOnSave": true,
			"editor.codeActionsOnSave": {
				"source.organizeImports": true
			}
		},
		"gopls": {
			"usePlaceholders": true, // add parameter placeholders when completing a function
			// Experimental settings
			"completeUnimported": true, // autocomplete unimported packages
			"watchFileChanges": true, // watch file changes outside of the editor
			"deepCompletion": true // enable deep completion
		},
		"files.eol": "\n", // formatting only supports LF line endings,
		"remote.extensionKind": {
			"ms-azuretools.vscode-docker": "workspace"
		},
		"yaml.schemas": {
			"kubernetes": "*.yaml"
		},
		"go.lintTool":"golangci-lint",
		"go.lintFlags": [
		"--fast"
		]
	},
	"extensions": [
		"ms-vsliveshare.vsliveshare-pack",
		"ms-azuretools.vscode-docker",
		"golang.Go",
		"redhat.vscode-yaml",
		"ms-kubernetes-tools.vscode-kubernetes-tools"
	]
}
