我相信很多人都遇到過這個問題,因為我不是唯一一個。
在 Visual Studio Code 中,我使用 Kubernetes 和 Azure Devops YAML。兩者都有完全不同的格式。要使用每個擴展,我發現我必須卸載其他擴展。
有沒有人解決過,在撰寫 Azure DevOps 管道或 Kubernetes 集群時,如何將兩者結合在一起,VSCode 可以解決這些問題?
uj5u.com熱心網友回復:
我確實按照@flyx 的建議做了,但昨天深夜并沒有發布我的答案,但我現在要這樣做。
我解決了以下問題。
http://www.schemastore.org/json/composer如果您嘗試通過 JSON 全域詞參考它們,VSCode 似乎無法決議其中的模式- 您可以獲得不同的模式以跨不同的技術作業。例如 Kubernetes,Azure DevOps 和 Ansible 是我現在設定的。
- 您必須同意在 YAML 檔案上使用結束語法才能使其正常作業。例如,我的 Ansible YAML 檔案現在都以 _a.yml 結尾,我的 Kubernetes YAML 檔案都以 _kube.yaml 結尾,而我的 Azure DevOps YAML 檔案都以默認語法 .yml 結尾
弄清楚這三件事后,我能夠設定我的環境,以允許智能感知和 JSON 語法檢查器提取不同的所需模式。我還發現 Kubernetes 的 Google Cloud Code 擴展實際上比 Microsoft 的更好,而且它比構建 Kubernetes YAML 檔案要快得多。
此外,要使其正常作業,您需要先保存檔案,并使用正確的擴展名讓 VSCode 知道您正在使用某種技術并下拉正確的架構。另外,請注意 .vscode 檔案,它有時會變得有點傻,并且沒有放入正確的模式,所以請留意它。如果失敗,請洗掉它,關閉 VSCode 并重新打開,你應該可以開始了。
這是我的 JSON 設定,適用于任何想要執行此操作的人:
{
"redhat.telemetry.enabled": true,
"yaml.schemas": {
"https://raw.githubusercontent.com/microsoft/azure-pipelines-vscode/master/service-schema.json": "*.yml",
// "http://www.schemastore.org/json/composer": ["/*"],
// "https://raw.githubusercontent.com/apache/camel/main/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/camel-yaml-dsl.json" : "/_kube*.yaml",
"kubernetes": ["/*.yaml"],
"https://json.schemastore.org/ansible-playbook" : "/_a*.yaml",
"https://json.schemastore.org/ansible-role-2.9" : ["^/roles/*/tasks/_a*.yaml", "^/tasks/_a*.yaml"]
},
"vs-kubernetes": {
"vscode-kubernetes.helm-path.windows": "C:\\Users\\Jason\\.vs-kubernetes\\tools\\helm\\windows-amd64\\helm.exe",
"vscode-kubernetes.minikube-path.windows": "C:\\Users\\Jason\\.vs-kubernetes\\tools\\minikube\\windows-amd64\\minikube.exe"
},
"files.associations": {
"**/ci/*.yml": "azure-pipelines"
},
"[azure-pipelines]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"yaml.schemaStore.url": "http://www.schemastore.org/api/json/catalog.json",
"cloudcode.yaml.crdSchemaLocations": [
],
"cloudcode.yaml.schemas": {
},
"cloudcode.yaml.yamlFileMatcher": "/_kube*.yaml",
}
用于此的擴展:
- 紅帽 Yaml
- 谷歌云代碼
- 蔚藍管道
- Kubernetes Microsoft Default(出于某些原因,需要這樣做才能使 redhat yml 擴展正常運行)
- Ansible Yaml Schema(這不是擴展,它們只是來自 json 模式存盤,但請確保您擁有正確的 url,否則 VSCode 無法決議它。請參閱第 1 點。)
uj5u.com熱心網友回復:
Azure Pipelines的擴展描述了如何通過設定將其設定為用于特定檔案"files.associations"。
您可以使用支持 Kubernetes的擴展來做類似的事情。
或者,您可以專門使用后者,因為它支持自定義模式。您可以在此處找到 Azure Pipelines 的架構;將其注冊為架構并設定與 Azure 檔案匹配的 glob 模式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/535575.html
標籤:库伯内特斯azure-devopsyamlazure-pipelines-yaml
