创建一个捆绑资源
捆绑在创建SUSE® Rancher Prime Continuous Delivery时由`GitRepo`自动创建。在大多数情况下,`Bundles`不应由用户手动创建。如果您想从git储存库部署资源,请使用GitRepo。
如果您想在没有git储存库的情况下部署资源,请按照本指南创建一个`Bundle`。
|
如果您想在不运行Fleet控制器的情况下部署资源。请参考使用CLI将Helm图表转换为捆绑。 |
在创建`GitRepo`时,SUSE® Rancher Prime Continuous Delivery将从git储存库获取资源,并将其添加到捆绑中。 在创建`Bundle`时,需要在`Bundle`规格中明确指定资源。 资源可以使用gz进行压缩。请参见 managedchart.go,了解Rancher如何在go代码中使用压缩的示例。
如果您想在下游集群中部署,您需要定义目标。目标的工作方式类似于`GitRepo`中的目标。 请参见映射到下游集群。
以下示例在本地群集中创建一个nginx Deployment:
kind: Bundle
apiVersion: fleet.cattle.io/v1alpha1
metadata:
# Any name can be used here
name: my-bundle
# For single cluster use fleet-local, otherwise use the namespace of
# your choosing
namespace: fleet-local
spec:
resources:
# List of all resources that will be deployed
- content: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
name: nginx.yaml
targets:
- clusterName: local
局限性
与下载helm图表相关的Helm选项将被忽略。helm图表由fleet-cli下载,后者创建捆绑。该捆绑必须包含图表中的所有资源。因此,该捆绑将忽略:
-
spec.helm.repo -
spec.helm.charts
您不能在资源中使用 fleet.yaml,它仅由 fleet-cli 用于创建捆绑。
spec.targetRestrictions 字段没有用,因为它是 spec.targets 中指定目标的允许列表。这不是必需的,因为 targets 在捆绑中明确给出,空的 targetRestrictions 默认允许。
您可以使用 Fleet CLI 将 Helm 图表转换为 bundle。有关更多信息,请参阅 使用 CLI 将 Helm 图表转换为捆绑。.