Co-authored-by: 段少 <duanwei.duan@alibaba-inc.com>
This commit is contained in:
Wei (段少) 2021-08-19 21:01:34 +08:00 committed by GitHub
parent e4ee8355ff
commit 47bc41ee68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 54 additions and 17 deletions

View File

@ -12,19 +12,9 @@ title: Terraform 组件
3. KubeVela 通过 Terraform 控制器来拉起对应的云资源。
### 安装 Terraform 控制器
### 开启 Terraform 控制器
从最新的 [发布列表](https://github.com/oam-dev/terraform-controller/releases) 里下载并安装,比如 `terraform-controller-chart-0.1.8.tgz`
```shell
$ helm install terraform-controller terraform-controller-0.1.8.tgz
NAME: terraform-controller
LAST DEPLOYED: Mon Apr 26 15:55:35 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
```
推荐你直接通过[系统插件addon](../addon)来开启 Terraform 控制器。
### 配置阿里云鉴权
以下是阿里云的鉴权相关步骤,其它云服务商同理:
@ -117,7 +107,9 @@ kind: Configuration
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"terraform.core.oam.dev/v1beta1","kind":"Configuration","metadata":{"annotations":{},"name":"alibaba-oss","namespace":"default"},"spec":{"JSON":"{\n \"resource\": {\n \"alicloud_oss_bucket\": {\n \"bucket-acl\": {\n \"bucket\": \"${var.bucket}\",\n \"acl\": \"${var.acl}\"\n }\n }\n },\n \"output\": {\n \"BUCKET_NAME\": {\n \"value\": \"${alicloud_oss_bucket.bucket-acl.bucket}.${alicloud_oss_bucket.bucket-acl.extranet_endpoint}\"\n }\n },\n \"variable\": {\n \"bucket\": {\n \"default\": \"poc\"\n },\n \"acl\": {\n \"default\": \"private\"\n }\n }\n}\n","variable":{"acl":"private","bucket":"vela-website"},"writeConnectionSecretToRef":{"name":"oss-conn","namespace":"default"}}}
{"apiVersion":"terraform.core.oam.dev/v1beta1","kind":"Configuration","metadata":{"annotations":{},"name":"alibaba-oss","namespace":"default"},"spec":
...
\"private\"\n }\n }\n}\n","variable":{"acl":"private","bucket":"vela-website"},"writeConnectionSecretToRef":{"name":"oss-conn","namespace":"default"}}}
creationTimestamp: "2021-04-02T08:17:08Z"
generation: 2
spec:

View File

@ -347,4 +347,49 @@ hello-world-v1 1/1 1 1 15s
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-world-trait-7bdcff98f7 ClusterIP <your ip> <none> 8000/TCP 32s
```
```
## 使用 CUE `Context`
KubeVela 让你可以在运行时,通过 `context` 关键字来引用一些信息。
最常用的就是应用部署计划的名称 `context.appName` 和组件的名称 `context.name`
```cue
context: {
appName: string
name: string
}
```
举例来说,假设你在实现一个组件定义,希望将容器的名称填充为组件的名称。那么这样做:
```cue
parameter: {
image: string
}
output: {
...
spec: {
containers: [{
name: context.name
image: parameter.image
}]
}
...
}
```
> 注意,`context` 的信息会在资源部署到目标集群之前就自动注入了
### CUE `context` 的配置项
| Context 变量名 | 说明 |
| :--: | :---------: |
| `context.appRevision` | 应用部署计划的版本 |
| `context.appRevisionNum` | 应用部署计划的版本号(`int` 类型), 比如说如果 `context.appRevision``app-v1` 的话,`context.appRevisionNum` 会是 `1` |
| `context.appName` | 应用部署计划的名称 |
| `context.name` | 组件的名称 |
| `context.namespace` | 应用部署计划的命名空间 |
| `context.output` | 组件中渲染的工作负载 API 资源,这通常用在运维特征里 |
| `context.outputs.<resourceName>` | 组件中渲染的运维特征 API 资源,这通常用在运维特征里 |

View File

@ -88,8 +88,8 @@ module.exports = {
},
{
'Debugging': [
'end-user/debug/health',
'end-user/debug/monitoring',
// 'end-user/debug/health',
// 'end-user/debug/monitoring', 这部分要和可观测合并
'end-user/debug/live-diff',
]
},
@ -123,7 +123,7 @@ module.exports = {
{
'Learning CUE': [
'platform-engineers/cue/basic',
'platform-engineers/cue/advanced',
// 'platform-engineers/cue/advanced', 暂时隐藏,来不及随 1.1 发布,随后补充
]
},
{