既存のYAML設定から[[CUE]]をインポートしてみる。
[cue/doc/tutorial/kubernetes at master · cuelang/cue · GitHub](https://github.com/cuelang/cue/tree/master/doc/tutorial/kubernetes#importing-existing-configuration) に従う。
```shell-session
$ cd deploy/kubernetes/
$ cue mod init
$ go mod init example.com
```
```shell-session
$ cd litmus/
$ cue import ./...
```
ドキュメントには、`must specify package name with the -p flag`と書かれているが、そのようなエラーは出力されなかった。
```shell-session
$ cat pod-cpu-hog.cue
apiVersion: "litmuschaos.io/v1alpha1"
kind: "ChaosEngine"
metadata: {
name: "carts-db-chaos"
namespace: "sock-shop"
}
spec: {
annotationCheck: "false"
engineState: "active"
monitoring: true
appinfo: {
appns: "sock-shop"
// FYI, To see app label, apply kubectl get pods --show-labels
// unique-label of the application under test (AUT)
applabel: "name=carts-db"
appkind: "deployment"
}
chaosServiceAccount: "sock-shop-chaos-engine"
jobCleanUpPolicy: "delete"
experiments: [{
name: "pod-cpu-hog"
spec: components: env: [{
name: "TARGET_CONTAINER"
value: "carts-db"
}, {
name: "CPU_CORES"
value: "2"
}, {
name: "TOTAL_CHAOS_DURATION"
value: "60"
}]
}, {
// in seconds
name: "pod-cpu-hog"
spec: components: env: [{
name: "TARGET_CONTAINER"
value: "carts-db"
}, {
name: "CPU_CORES"
value: "2"
}, {
name: "TOTAL_CHAOS_DURATION"
value: "60"
}]
}]
}
```
```yaml
$ cue export --out yaml pod-cpu-hog.cue
apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
name: carts-db-chaos
namespace: sock-shop
spec:
annotationCheck: "false"
engineState: active
monitoring: true
appinfo:
appns: sock-shop
applabel: name=carts-db
appkind: deployment
chaosServiceAccount: sock-shop-chaos-engine
jobCleanUpPolicy: delete
experiments:
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
- name: pod-cpu-hog
spec:
components:
env:
- name: TARGET_CONTAINER
value: carts-db
- name: CPU_CORES
value: "2"
- name: TOTAL_CHAOS_DURATION
value: "60"
```