HAOJX

HAOJX

杂施而不孙,则坏乱而不修 ; 独学而无友,则孤陋而寡闻

cue工作流入门介绍
官方文档介绍 https://pkg.go.dev/cuelang.org/go/tools/flow 在k8s中 可以把他用在开发CD/CD中的cd流程 比如**kubevela**(https://kubevela.io/zh/docs/)就的就它搞的 非常不错 一个简单的代码示例 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960package mainimport ( "context" "cuelang....
cue实战之快速构建k8s的nginx-ingress模板
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748input: { name: string & "myngx" namespace?: string | *"default" replicas: int | *1 port: int | *80}output: { deployment:{ apiVersion: "apps/v1" kind: "De...
cue基本语法
具体的学习可以先去看看官方文档 或者去https://cuetorials.com/zh/introduction/ 看看 基本定义123user: { name: "test"} 之后输出 cue export xx.cue(文件名) 即可输出 可以指定只输出某个变量 使用-e 比如 cue export xx.cue -e user 这样就只会输出user这个变量 也可以指定起输出变成yaml 比如 cue export xx.cue -e user —out yaml 拆分对象想拆分某个对象可以这样做 123456789metadata: &#...
聚合api编程之自定义kubectl输出字段的方法:metav1.Table
kubectl输出的格式一般是设置好的 写死的 也就是各个资源的列表头的定义都是写死的 具体代码在 github.com/kubernetes/kubernetes/-/blob/pkg/printers/internalversion/printers.go 验证: 当我们输入 1kubectl describe pod xxx -v=10 可以看到kubectl的输出是转换成了table这种type形式输出的 如果kubectl无法解析成table的话, 他会自己解析成一个 no-Table Object 也就是说只显示NAME和AGE 下面是个例子 123456789101...
K8s leaderElection选主的写法套路
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354package mainimport ( "context" "fmt" meatv1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" "kube-base3/lib/kubeCo...
代码自动签发证书
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071func GenK8sUser(cn,o string) { caCert,caPriKey:= parseK8sCA(CAFILE,CAKEY) if cn == "" { goft.Error(fmt.Errorf("CN is required")) } //构建证书模板 certTemp...
如何解析caCert,caPrikey
1234567891011121314151617181920212223242526272829const CAFILE="./test/certs/ca.crt"const CAKEY="./test/certs/ca.key"func parseK8sCA(cafile,cakey string) (*x509.Certificate,*rsa.PrivateKey) { //parse ca.crt and ca.key caFile,err:= ioutil.ReadFile(CAFILE) if err != nil { log.Fatal(err) &...
写个通用代码来模拟kubectl apply文件(kustomize模式)
这个yaml可以有三个横岗的那种 实现多个文件合并来apply 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687package mainimport ( "bytes" "context" "fmt" "io" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8...
如何代码创建自定义用户的config文件
如何查看config文件 1kubectl config view 或者在cat $HOME/.kube/config 简单事例1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package mainimport ( "encoding/pem" "io/ioutil" "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/clientcmd/api" "os")func caData() []byte ...
avatar
HAOJX
It is the first step that costs