バンドルリソースを作成する
バンドルは、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
ターゲット
バンドルは複数のクラスターをターゲットにできます。それはGitRepoと同じターゲティングを使用します。 ターゲットごとに追加のカスタマイズオプションを指定できます。
targets:
- clusterSelector:
matchLabels:
env: dev
defaultNamespace: lab-1
helm:
values:
replicas: 1
制限
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チャートをバンドルに変換するを参照してください。