CUE是何方神圣?

导读本片文章主要介绍 CUE 的基本概念,CUE 是什么以及可以做些什么,通过一些 demo 演示了基本的用法,适合小白入门阅读。本文首发于 https://russellgao.cn/cue-intro/ ,转载请保留出处。什么是CUEC(Configure:配置) , U(Unify:统一) , E(Execute:执行) 。CUE是一种开源的数据约束语言,旨在简化涉及定义和使用数据的任务。它是JSON的超集,允许熟悉JSON的用户快速上手。换言之,他和JSON、YAML 等类似,但
摘要由CSDN通过智能技术生成

导读

本片文章主要介绍 CUE 的基本概念,CUE 是什么以及可以做些什么,通过一些 demo 演示了基本的用法,适合小白入门阅读。

本文首发于 https://russellgao.cn/cue-intro/ ,转载请保留出处。

什么是CUE

C(Configure:配置) , U(Unify:统一) , E(Execute:执行) 。

CUE是一种开源的数据约束语言,旨在简化涉及定义和使用数据的任务。

它是JSON的超集,允许熟悉JSON的用户快速上手。

换言之,他和JSON、YAML 等类似,但是比他们的功能强大,可以和 JSON、YAML 等工具对比着来理解。

CUE 可以用来做什么

我们可以用CUE :

  • 定义一个详细的验证模式
  • 减少数据中的模版
  • 从代码中提取模式
  • 产生类型定义和验证代码
  • 以一种有原则的方式合并JSON
  • 定义和运行声明性脚本

How

CUE合并了模式和数据的概念。同一个CUE定义可以同时用于验证数据和作为模板来减少模板。模式定义通过细粒度的值定义和缺省值得到了丰富。同时,通过删除这些详细定义所隐含的值,可以简化数据。这两个概念的合并使得许多任务能够以一种原则性的方式被处理。

约束提供了一个简单的、定义明确的、但功能强大的、替代继承的方法,而继承是配置语言中常见的复杂性来源。

CUE脚本

CUE脚本层定义了声明性的脚本,用CUE表达,在数据之上。这解决了三个问题:解决了CUE定义的封闭性(我们说CUE是密封的),提供了一个简单的方法来分享使用数据的通用脚本和工作流程,并让CUE知道如何使用数据来优化验证。

有很多工具可以解释数据或者为特定领域使用专门的语言(Kustomize, Ksonnet)。这在一个层面上解决了处理数据的问题,但它解决的问题在工作流程中整合其他系统时可能会在更高的层面上重复出现。CUE脚本是通用的,允许用户定义任何工作流程。

安装

如果是 Mac 环境 ,执行下面的命令安装:

brew install cuelang/tap/cue

其他环境通过 golang 安装(当然 mac 也是可以的)

# go 1.16 之前
GO111MODULE=on go get cuelang.org/go/cmd/cue

# go 1.16 之后
go install cuelang.org/go/cmd/cue@latest

详细可参考 安装文档

安装完之后可以通过命令行执行 cue --help 查看基本的帮助文档。

cue --help
cue evaluates CUE files, an extension of JSON, and sends them
to user-defined commands for processing.

Commands are defined in CUE as follows:

	import "tool/exec"
	command: deploy: {
   
		exec.Run
		cmd:   "kubectl"
		args:  [ "-f", "deploy" ]
		in:    json.Encode(userValue) // encode the emitted configuration.
	}

cue can also combine the results of http or grpc request with the input
configuration for further processing. For more information on defining commands
run 'cue help cmd' or go to cuelang.org/pkg/cmd.

For more information on writing CUE configuration files see cuelang.org.

U
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值