日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

k8s之cue模板

發布時間:2025/3/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s之cue模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

cuelang隨筆:

1、通過context.CompileString把string轉換為cue.value,或通過context.encode把go類型轉換為cue.value,或通過context.BuildInstance把instance轉換為cue.value。之后通過value.Syntax把cue.value轉換為抽象語法樹ast,通過format.Node格式化打印AST。

2、CUE 將?類型(types)?和?數據(values)?合并為一個概念:格,且CUE非常重視約束,用 約束條件(constraint)來管理值的規則或限制,像其他所有的實體一樣,它存在于結構和具體數值中間。

3、cue的值不能被改變,在 CUE 中沒有重載或重寫的概念,只能由大范圍到小范圍,且lists must have the same elements and cannot change length。

[...sting] string的數組,close,賦值之后則長度不可變; [string,...] 容量是1的數組,open,長度可變;

4、Top 和 Bottom 是 CUE 的特殊類型,他們是??的兩端。

“_” 用來表示 top,可以匹配所有值,即?“any”;

“_|_” 用來表示 bottom,代表錯誤

5、Definition?主要用于定義結構,也就是變量,默認情況下是封閉(Close)的,而且 CUE 導出時不會被輸出。默認情況下,struct 是開放的,而 definition 是封閉的。

6、隱式字段和值通過在前面增加下劃線定義,只可以在當前 package 進行引用

基礎知識:

CUE能夠安全地更改可修改配置中成千上萬個對象的值。

1、數據類型:int、float、bool、string、array、struct、null

2、運算符#定義變量: #abc: string

3、運算符...定義開放的結構體和數組: close的數組對象?[...string]?,open的數組對象[string,...],說明該對象可以容納多個字符串元素結構體對象;

{abc: string ??...}

說明結構體可以包含未知字段;

4、運算符 | 表示兩種類型的值。a: string | int?說明變量 a 表示類型可以是字符串或者整數類型。

5、運算符?*?定義變量的默認值。通常與符號?|?配合使用,代表某種類型的默認值。a: *1 | int說明變量?a?類型為?int,默認值為?1。

6、運算符 ?: 定義可選變量,某些情況下一些變量不一定被使用,這些變量就是選填。a ?: int說明a是可選填的變量。并且,選填變量通常和條件判斷邏輯一起使用。 ?_ | _?可選變量是否被填充。

7、運算符 if...else

price: numberfeel: *"good" | stringif price > 100 {feel: "bad"}price: 200

8、運算符for循環

????????8.1、切片遍歷

package cueparameter: {name: stringimage: stringenv: [...{name:string,value:string}] } output: {spec: {containers: [{name: parameter.nameimage: parameter.imageenv: [for _, v in parameter.env {name: v.namevalue: v.value},]}]} }parameter:{name: "mytest"image: "nginx:v1"env: [{name:"a",value:"b"},{name:"c",value:"d"},] }

????????8.2、類型遍歷

package cue#a: {"hello": "Barcelona""nihao": "Shanghai" }for k, v in #a {"\(k)": {nameLen: len(v)value: v} }

????????8.3、映射遍歷

package cueparameter: {name: stringimage: stringenv: [string]: string } output: {spec: {containers: [{name: parameter.nameimage: parameter.imageenv: [for k, v in parameter.env {name: kvalue: v},]}]} } parameter:{name: "mytest"image: "nginx:v1"env: "a": "b" }

9、運算符\()?進行字符串內部計算,"\(k)"說明取k變量的實際值。

10、cue命令

// 計算、渲染結果 cue eval first.cue// 計算、渲染結果,指定只計算某個值 cue eval first.cue -e out// 導出最終渲染結果 cue export first.cue --out yaml > first.yaml

總結

以上是生活随笔為你收集整理的k8s之cue模板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。