$ oc login --username=<your_username>
安装分布式跟踪平台 (Tempo) 需要 Tempo Operator,并选择最适合您用例的部署类型。
对于微服务模式,请在专用 OpenShift 项目中部署 TempoStack 实例。
对于单体模式,请在专用 OpenShift 项目中部署 TempoMonolithic 实例。
使用对象存储需要在部署 TempoStack 或 TempoMonolithic 实例之前设置受支持的对象存储并为对象存储凭据创建密钥。 |
您可以使用 Web 控制台或命令行安装 Tempo Operator。
您可以从 Web 控制台的**管理员**视图安装 Tempo Operator。
您已以具有 `cluster-admin` 角色的集群管理员身份登录到 OpenShift Container Platform Web 控制台。
对于 Red Hat OpenShift Dedicated,您必须使用具有 `dedicated-admin` 角色的帐户登录。
您已完成受支持提供商所需的对象存储设置:Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage。有关更多信息,请参见“对象存储设置”。
对象存储是必需的,并且不包含在分布式跟踪平台 (Tempo) 中。您必须在安装分布式跟踪平台 (Tempo) 之前选择并设置受支持提供商的对象存储。 |
转到**Operators** → **OperatorHub** 并搜索 `Tempo Operator`。
选择由 Red Hat 提供的**Tempo Operator**。
以下选项是此 Operator 的默认预设
|
选择**启用此命名空间上的 Operator 推荐集群监控**复选框。
选择**安装** → **安装** → **查看 Operator**。
在已安装 Operator 页面的**详细信息**选项卡中,在**ClusterServiceVersion 详细信息**下,验证安装**状态**是否为**成功**。
您可以从命令行安装 Tempo Operator。
由具有 `cluster-admin` 角色的集群管理员进行的活动 OpenShift CLI (oc
) 会话。
|
您已完成受支持提供商所需的对象存储设置:Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage。有关更多信息,请参见“对象存储设置”。
对象存储是必需的,并且不包含在分布式跟踪平台 (Tempo) 中。您必须在安装分布式跟踪平台 (Tempo) 之前选择并设置受支持提供商的对象存储。 |
通过运行以下命令创建 Tempo Operator 项目
$ oc apply -f - << EOF
apiVersion: project.openshift.io/v1
kind: Project
metadata:
labels:
kubernetes.io/metadata.name: openshift-tempo-operator
openshift.io/cluster-monitoring: "true"
name: openshift-tempo-operator
EOF
通过运行以下命令创建 Operator 组
$ oc apply -f - << EOF
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: openshift-tempo-operator
namespace: openshift-tempo-operator
spec:
upgradeStrategy: Default
EOF
通过运行以下命令创建订阅
$ oc apply -f - << EOF
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: tempo-product
namespace: openshift-tempo-operator
spec:
channel: stable
installPlanApproval: Automatic
name: tempo-product
source: redhat-operators
sourceNamespace: openshift-marketplace
EOF
通过运行以下命令检查 Operator 状态
$ oc get csv -n openshift-tempo-operator
您可以使用 Web 控制台或命令行安装 TempoStack 实例。
您可以从 Web 控制台的**管理员**视图安装 TempoStack 实例。
您已以具有 `cluster-admin` 角色的集群管理员身份登录到 OpenShift Container Platform Web 控制台。
对于 Red Hat OpenShift Dedicated,您必须使用具有 `dedicated-admin` 角色的帐户登录。
您已完成受支持提供商所需的对象存储设置:Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage。有关更多信息,请参见“对象存储设置”。
对象存储是必需的,并且不包含在分布式跟踪平台 (Tempo) 中。您必须在安装分布式跟踪平台 (Tempo) 之前选择并设置受支持提供商的对象存储。 |
转到**主页** → **项目** → **创建项目**,为后续步骤中将创建的 TempoStack 实例创建一个您选择的项目。
转到**工作负载** → **密钥** → **创建** → **从 YAML**,为在您为 TempoStack 实例创建的项目中创建的对象存储桶创建一个密钥。有关更多信息,请参阅“对象存储设置”。
apiVersion: v1
kind: Secret
metadata:
name: minio-test
stringData:
endpoint: http://minio.minio.svc:9000
bucket: tempo
access_key_id: tempo
access_key_secret: <secret>
type: Opaque
创建 TempoStack 实例。
您可以在同一集群上的不同项目中创建多个 TempoStack 实例。 |
转到**运算符** → **已安装的运算符**。
选择**TempoStack** → **创建 TempoStack** → **YAML 视图**。
在**YAML 视图**中,自定义TempoStack
自定义资源 (CR)
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: sample
namespace: <project_of_tempostack_instance>
spec:
storageSize: <value>Gi (1)
storage:
secret: (2)
name: <secret_name> (3)
type: <secret_provider> (4)
tls: (5)
enabled: true
caName: <ca_certificate_configmap_name> (6)
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
route:
termination: edge
type: route
resources: (7)
total:
limits:
memory: <value>Gi
cpu: <value>m
1 | Tempo WAL 的持久卷声明大小。默认为10Gi 。 |
2 | 您在步骤 2 中为已设置为先决条件之一的对象存储创建的密钥。 |
3 | 密钥metadata 中的name 的值。 |
4 | 可接受的值包括:Azure Blob Storage 为azure ;Google Cloud Storage 为gcs ;Amazon S3、MinIO 或 Red Hat OpenShift Data Foundation 为s3 。 |
5 | 可选。 |
6 | 可选:包含 CA 证书的ConfigMap 对象的名称。 |
7 | 可选。 |
TempoStack
CR 示例apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: simplest
namespace: <project_of_tempostack_instance>
spec:
storageSize: 1Gi
storage: (1)
secret:
name: minio-test
type: s3
resources:
total:
limits:
memory: 2Gi
cpu: 2000m
template:
queryFrontend:
jaegerQuery: (2)
enabled: true
ingress:
route:
termination: edge
type: route
1 | 在此示例中,对象存储已设置为先决条件之一,并且对象存储密钥已在步骤 2 中创建。 |
2 | 在此示例中部署的堆栈配置为通过 HTTP 接收 Jaeger Thrift 和 OpenTelemetry 协议 (OTLP),这允许使用 Jaeger UI 可视化数据。 |
选择**创建**。
使用**项目:**下拉列表选择**TempoStack**实例的项目。
转到**运算符** → **已安装的运算符**以验证**TempoStack**实例的**状态**是否为**条件:就绪**。
转到**工作负载** → **Pod**以验证**TempoStack**实例的所有组件 Pod 是否正在运行。
访问 Tempo 控制台
转到**网络** → **路由**并按Ctrl+F搜索tempo
。
在**位置**列中,打开 URL 以访问 Tempo 控制台。
安装 Tempo 控制台后,Tempo 控制台最初不显示任何跟踪数据。 |
您可以从命令行安装 TempoStack 实例。
由具有 `cluster-admin` 角色的集群管理员进行的活动 OpenShift CLI (oc
) 会话。
|
您已完成受支持提供商所需的对象存储设置:Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage、Google Cloud Storage。有关更多信息,请参见“对象存储设置”。
对象存储是必需的,并且不包含在分布式跟踪平台 (Tempo) 中。您必须在安装分布式跟踪平台 (Tempo) 之前选择并设置受支持提供商的对象存储。 |
运行以下命令以创建您选择的项目,用于您将在后续步骤中创建的 TempoStack 实例
$ oc apply -f - << EOF
apiVersion: project.openshift.io/v1
kind: Project
metadata:
name: <project_of_tempostack_instance>
EOF
在您为 TempoStack 实例创建的项目中,通过运行以下命令为您的对象存储桶创建一个密钥
$ oc apply -f - << EOF
<object_storage_secret>
EOF
有关更多信息,请参阅“对象存储设置”。
apiVersion: v1
kind: Secret
metadata:
name: minio-test
stringData:
endpoint: http://minio.minio.svc:9000
bucket: tempo
access_key_id: tempo
access_key_secret: <secret>
type: Opaque
在您为其创建的项目中创建 TempoStack 实例
您可以在同一集群上的不同项目中创建多个 TempoStack 实例。 |
自定义TempoStack
自定义资源 (CR)
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: sample
namespace: <project_of_tempostack_instance>
spec:
storageSize: <value>Gi (1)
storage:
secret: (2)
name: <secret_name> (3)
type: <secret_provider> (4)
tls: (5)
enabled: true
caName: <ca_certificate_configmap_name> (6)
template:
queryFrontend:
jaegerQuery:
enabled: true
ingress:
route:
termination: edge
type: route
resources: (7)
total:
limits:
memory: <value>Gi
cpu: <value>m
1 | Tempo WAL 的持久卷声明大小。默认为10Gi 。 |
2 | 您在步骤 2 中为已设置为先决条件之一的对象存储创建的密钥。 |
3 | 密钥metadata 中的name 的值。 |
4 | 可接受的值包括:Azure Blob Storage 为azure ;Google Cloud Storage 为gcs ;Amazon S3、MinIO 或 Red Hat OpenShift Data Foundation 为s3 。 |
5 | 可选。 |
6 | 可选:包含 CA 证书的ConfigMap 对象的名称。 |
7 | 可选。 |
TempoStack
CR 示例apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
name: simplest
namespace: <project_of_tempostack_instance>
spec:
storageSize: 1Gi
storage: (1)
secret:
name: minio-test
type: s3
resources:
total:
limits:
memory: 2Gi
cpu: 2000m
template:
queryFrontend:
jaegerQuery: (2)
enabled: true
ingress:
route:
termination: edge
type: route
1 | 在此示例中,对象存储已设置为先决条件之一,并且对象存储密钥已在步骤 2 中创建。 |
2 | 在此示例中部署的堆栈配置为通过 HTTP 接收 Jaeger Thrift 和 OpenTelemetry 协议 (OTLP),这允许使用 Jaeger UI 可视化数据。 |
通过运行以下命令应用自定义的 CR
$ oc apply -f - << EOF
<tempostack_cr>
EOF
通过运行以下命令验证所有 TempoStack components
的status
是否为Running
,并且conditions
是否为type: Ready
$ oc get tempostacks.tempo.grafana.com simplest -o yaml
通过运行以下命令验证所有 TempoStack 组件 Pod 是否正在运行
$ oc get pods
访问 Tempo 控制台
通过运行以下命令查询路由详细信息
$ oc get route
在 Web 浏览器中打开https://<route_from_previous_step>
。
安装 Tempo 控制台后,Tempo 控制台最初不显示任何跟踪数据。 |
TempoMonolithic 实例仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
您可以使用 Web 控制台或命令行安装 TempoMonolithic 实例。
TempoMonolithic
自定义资源 (CR) 以单体模式创建 Tempo 部署。Tempo 部署的所有组件(例如压缩器、分发器、摄取器、查询器和查询前端)都包含在一个容器中。
TempoMonolithic 实例支持将跟踪存储在内存存储、持久卷或对象存储中。
对于小型部署、演示、测试以及作为 Red Hat OpenShift 分布式跟踪平台 (Jaeger) 一体化部署的迁移路径,建议使用单体模式的 Tempo 部署。
Tempo 的单体部署不会水平扩展。如果您需要水平扩展,请使用 |
TempoMonolithic 实例仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
您可以从 Web 控制台的**管理员**视图安装 TempoMonolithic 实例。
您已以具有 `cluster-admin` 角色的集群管理员身份登录到 OpenShift Container Platform Web 控制台。
对于 Red Hat OpenShift Dedicated,您必须使用具有 `dedicated-admin` 角色的帐户登录。
转到**主页** → **项目** → **创建项目**,为后续步骤中将创建的**TempoMonolithic**实例创建一个您选择的项目。
确定要使用哪种类型的支持存储来存储跟踪:内存存储、持久卷或对象存储。
分布式跟踪平台 (Tempo) 不包含对象存储,需要通过受支持的提供商设置对象存储:Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage或Google Cloud Storage。 此外,选择对象存储需要在您为**TempoMonolithic**实例创建的项目中为您的对象存储桶创建一个密钥。您可以在**工作负载** → **密钥** → **创建** → **从 YAML**中执行此操作。 有关更多信息,请参阅“对象存储设置”。 Amazon S3 和 MinIO 存储的示例密钥
|
创建一个**TempoMonolithic**实例
您可以在同一集群上的不同项目中创建多个**TempoMonolithic**实例。 |
转到**运算符** → **已安装的运算符**。
选择**TempoMonolithic** → **创建 TempoMonolithic** → **YAML 视图**。
在**YAML 视图**中,自定义TempoMonolithic
自定义资源 (CR)。
以下TempoMonolithic
CR 创建一个 TempoMonolithic 部署,通过 OTLP/gRPC 和 OTLP/HTTP 进行跟踪摄取,将跟踪存储在受支持的存储类型中,并通过路由公开 Jaeger UI
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoMonolithic
metadata:
name: <metadata_name>
namespace: <project_of_tempomonolithic_instance>
spec:
storage:
traces:
backend: <supported_storage_type> (1)
size: <value>Gi (2)
s3: (3)
secret: <secret_name> (4)
tls: (5)
enabled: true
caName: <ca_certificate_configmap_name> (6)
jaegerui:
enabled: true (7)
route:
enabled: true (8)
resources: (9)
total:
limits:
memory: <value>Gi
cpu: <value>m
1 | 用于存储跟踪的存储类型:内存存储、持久卷或对象存储。持久卷的值为pv 。对象存储的可接受值为s3 、gcs 或azure ,具体取决于所使用的对象存储类型。tmpfs 内存存储的默认值为memory ,这仅适用于开发、测试、演示和概念验证环境,因为当 Pod 关闭时数据不会持久化。 |
2 | 内存大小:对于内存存储,这意味着tmpfs 卷的大小,默认为2Gi 。对于持久卷,这意味着持久卷声明的大小,默认为10Gi 。对于对象存储,这意味着 Tempo WAL 的持久卷声明的大小,默认为10Gi 。 |
3 | 可选:对于对象存储,对象存储的类型。可接受的值为s3 、gcs 和azure ,具体取决于所使用的对象存储类型。 |
4 | 可选:对于对象存储,存储密钥的metadata 中name 的值。存储密钥必须与 TempoMonolithic 实例位于相同的命名空间中,并且包含“对象存储设置”部分“表 1. 必需的密钥参数”中指定字段。 |
5 | 可选。 |
6 | 可选:包含 CA 证书的ConfigMap 对象的名称。 |
7 | 启用 Jaeger UI。 |
8 | 启用为 Jaeger UI 创建路由。 |
9 | 可选。 |
选择**创建**。
使用项目:下拉列表选择TempoMonolithic实例的项目。
转到操作符 → 已安装的操作符,以验证TempoMonolithic实例的状态是否为条件:就绪。
转到工作负载 → Pod,以验证TempoMonolithic实例的 Pod 是否正在运行。
访问 Jaeger UI
转到网络 → 路由,并按Ctrl+F搜索jaegerui
。
Jaeger UI 使用 |
在位置列中,打开 URL 以访问 Jaeger UI。
当TempoMonolithic实例的 Pod 就绪后,您可以将跟踪发送到集群内的tempo-<TempoMonolithic_CR 的元数据名称>:4317
(OTLP/gRPC) 和tempo-<TempoMonolithic_CR 的元数据名称>:4318
(OTLP/HTTP) 端点。
Tempo API 可在集群内的tempo-<TempoMonolithic_CR 的元数据名称>:3200
端点访问。
TempoMonolithic 实例仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能提供对即将推出的产品功能的早期访问,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
您可以通过命令行安装 TempoMonolithic 实例。
由具有 `cluster-admin` 角色的集群管理员进行的活动 OpenShift CLI (oc
) 会话。
|
运行以下命令以创建您选择的项目,用于您将在后续步骤中创建的 TempoMonolithic 实例
$ oc apply -f - << EOF
apiVersion: project.openshift.io/v1
kind: Project
metadata:
name: <project_of_tempomonolithic_instance>
EOF
确定要使用哪种类型的支持存储来存储跟踪:内存存储、持久卷或对象存储。
分布式跟踪平台 (Tempo) 不包含对象存储,需要通过受支持的提供商设置对象存储:Red Hat OpenShift Data Foundation、MinIO、Amazon S3、Azure Blob Storage或Google Cloud Storage。 此外,选择对象存储需要为在您为 TempoMonolithic 实例创建的项目中您的对象存储桶创建密钥。您可以通过运行以下命令来执行此操作
有关更多信息,请参阅“对象存储设置”。 Amazon S3 和 MinIO 存储的示例密钥
|
在您为其创建的项目中创建 TempoMonolithic 实例。
您可以在同一集群的单独项目中创建多个 TempoMonolithic 实例。 |
自定义TempoMonolithic
自定义资源 (CR)。
以下TempoMonolithic
CR 创建一个 TempoMonolithic 部署,通过 OTLP/gRPC 和 OTLP/HTTP 进行跟踪摄取,将跟踪存储在受支持的存储类型中,并通过路由公开 Jaeger UI
apiVersion: tempo.grafana.com/v1alpha1
kind: TempoMonolithic
metadata:
name: <metadata_name>
namespace: <project_of_tempomonolithic_instance>
spec:
storage:
traces:
backend: <supported_storage_type> (1)
size: <value>Gi (2)
s3: (3)
secret: <secret_name> (4)
tls: (5)
enabled: true
caName: <ca_certificate_configmap_name> (6)
jaegerui:
enabled: true (7)
route:
enabled: true (8)
resources: (9)
total:
limits:
memory: <value>Gi
cpu: <value>m
1 | 用于存储跟踪的存储类型:内存存储、持久卷或对象存储。持久卷的值为pv 。对象存储的可接受值为s3 、gcs 或azure ,具体取决于所使用的对象存储类型。tmpfs 内存存储的默认值为memory ,这仅适用于开发、测试、演示和概念验证环境,因为当 Pod 关闭时数据不会持久化。 |
2 | 内存大小:对于内存存储,这意味着tmpfs 卷的大小,默认为2Gi 。对于持久卷,这意味着持久卷声明的大小,默认为10Gi 。对于对象存储,这意味着 Tempo WAL 的持久卷声明的大小,默认为10Gi 。 |
3 | 可选:对于对象存储,对象存储的类型。可接受的值为s3 、gcs 和azure ,具体取决于所使用的对象存储类型。 |
4 | 可选:对于对象存储,存储密钥的metadata 中name 的值。存储密钥必须与 TempoMonolithic 实例位于相同的命名空间中,并且包含“对象存储设置”部分“表 1. 必需的密钥参数”中指定字段。 |
5 | 可选。 |
6 | 可选:包含 CA 证书的ConfigMap 对象的名称。 |
7 | 启用 Jaeger UI。 |
8 | 启用为 Jaeger UI 创建路由。 |
9 | 可选。 |
通过运行以下命令应用自定义的 CR
$ oc apply -f - << EOF
<tempomonolithic_cr>
EOF
通过运行以下命令验证所有 TempoMonolithic 组件
的状态
是否为运行中
,并且条件
是否为类型:就绪
$ oc get tempomonolithic.tempo.grafana.com <metadata_name_of_tempomonolithic_cr> -o yaml
运行以下命令以验证 TempoMonolithic 实例的 Pod 是否正在运行
$ oc get pods
访问 Jaeger UI
通过运行以下命令查询tempo-<tempomonolithic_cr 的元数据名称>-jaegerui
路由的路由详细信息
$ oc get route
在 Web 浏览器中打开https://<route_from_previous_step>
。
当 TempoMonolithic 实例的 Pod 就绪后,您可以将跟踪发送到集群内的tempo-<tempomonolithic_cr 的元数据名称>:4317
(OTLP/gRPC) 和tempo-<tempomonolithic_cr 的元数据名称>:4318
(OTLP/HTTP) 端点。
Tempo API 可在集群内的tempo-<tempomonolithic_cr 的元数据名称>:3200
端点访问。
设置支持的对象存储时,您可以使用以下配置参数。
存储提供商 | 密钥参数 |
---|---|
|
|
MinIO |
参见 MinIO 操作符。
|
Amazon S3 |
|
带有安全令牌服务 (STS) 的 Amazon S3 |
|
Microsoft Azure Blob 存储 |
|
Google Cloud Platform (GCP) 上的 Google Cloud Storage |
|
您可以使用 AWS 命令行界面 (AWS CLI) 设置带有安全令牌服务 (STS) 的 Amazon S3 存储。
带有安全令牌服务的 Amazon S3 存储仅为技术预览功能。技术预览功能不受 Red Hat 生产服务级别协议 (SLA) 的支持,并且功能可能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让您提前访问即将推出的产品功能,使客户能够在开发过程中测试功能并提供反馈。 有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围。 |
您已安装最新版本的 AWS CLI。
创建一个 AWS S3 存储桶。
为 AWS IAM 策略创建以下trust.json
文件,该策略将在下一步中为 AWS IAM 角色(与 TempoStack 实例的服务帐户创建)建立信任关系
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::${<aws_account_id>}:oidc-provider/${<oidc_provider>}" (1)
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"${OIDC_PROVIDER}:sub": [
"system:serviceaccount:${<openshift_project_for_tempostack>}:tempo-${<tempostack_cr_name>}" (2)
"system:serviceaccount:${<openshift_project_for_tempostack>}:tempo-${<tempostack_cr_name>}-query-frontend"
]
}
}
}
]
}
1 | 您已在 OpenShift Container Platform 上配置的 OIDC 提供程序。您还可以通过运行以下命令获取已配置的 OIDC 提供程序值:$ oc get authentication cluster -o json | jq -r '.spec.serviceAccountIssuer' | sed 'shttp[s]*://~g' 。 |
2 | 您打算在其中创建 TempoStack 实例的命名空间。 |
通过附加您创建的trust.json
策略文件来创建 AWS IAM 角色
$ aws iam create-role \
--role-name "tempo-s3-access" \
--assume-role-policy-document "file:///tmp/trust.json" \
--query Role.Arn \
--output text
将 AWS IAM 策略附加到已创建的角色
$ aws iam attach-role-policy \
--role-name "tempo-s3-access" \
--policy-arn "arn:aws:iam::aws:policy/AmazonS3FullAccess"
在 OpenShift Container Platform 中,创建具有以下密钥的对象存储密钥
apiVersion: v1
kind: Secret
metadata:
name: minio-test
stringData:
bucket: <s3_bucket_name>
region: <s3_region>
role_arn: <s3_role_arn>
type: Opaque