Skip to content

Library and Tool

yu huang edited this page Nov 15, 2022 · 2 revisions

Go Package

"gopkg.in/yaml.v2""sigs.k8s.io/yaml"

k8s yaml空值会返回null, yaml.v2会返回[] k8s yaml能识别json tag

Kubernetes Tool

  • Velero: 备份资源
  • k9s: 命令行工具

Document Related:

Command Line Tool:

System Troubleshoot

DevOps

  • Concept

    • GitOps: 传统的CD多为push模式,GitOps CD则为pull模式.
    • CI/CD: 关于CI/CD,注重的是理念,工具本身并不是最主要的,就算没有工具用最传统的命令行也是能够达成目标的。
  • IaC Tool:

    • pulumi: 相比Terraform用HAC的DSL, pulumi直接用代码控制infrastructure
    • CloudFormation
    • Terraform
    • Packer: VM Image构建工具。大概原理:(AWS AMI例子)先launch Instance, 然后运行所有的命令, 最后对instance创建snapshot。
    • Vault: 常见的sensitive data store
    • AWS CDK
  • CI/CD Tool:

    • Gitlab CI: 依托于gitlab平台,基于.gitlab-ci.yaml运行。

测试工具

  • microcks: 根据文档生成mock server, 可以部署在kubernetes上
  • Testcontainers: 用代码控制container. Golang Package
  • BATS: assert shell script. Docs. assert doc. 安装方式git submodule. 用run运行命令,可以防止函数因为exit 1,导致测试失败.
  • terratest: 测试infrastructure. 实现: 对于没有API的工具,封装工具命令行。对于有API的工具,封装API.

Images:

生产力工具:

  • taskfile: 基本可以替代makefile
  • tilt

其他工具:

  • Vagrant: 虚拟机构建工具