Erstellen Sie eine Bundle-Ressource
Bundles werden automatisch von SUSE® Rancher Prime Continuous Delivery erstellt, wenn ein GitRepo erstellt wird. In den meisten Fällen sollte Bundles nicht manuell vom Benutzer erstellt werden. Wenn Sie Ressourcen aus einem Git-Repository bereitstellen möchten, verwenden Sie stattdessen ein GitRepo.
Wenn Sie Ressourcen ohne ein Git-Repository bereitstellen möchten, folgen Sie diesem Leitfaden, um ein Bundle zu erstellen.
|
Wenn Sie Ressourcen bereitstellen möchten, ohne einen Fleet-Controller auszuführen. Verweisen Sie auf Konvertieren Sie ein Helm-Chart in ein Bundle mit CLI. |
Beim Erstellen eines GitRepo ruft SUSE® Rancher Prime Continuous Delivery die Ressourcen aus einem Git-Repository ab und fügt sie einem Bundle hinzu.
Beim Erstellen eines Bundle müssen die Ressourcen im Bundle Spec ausdrücklich angegeben werden.
Ressourcen können mit gz komprimiert werden. Siehe managedchart.go ein Beispiel dafür, wie Rancher Kompression im Go-Code verwendet.
Wenn Sie in Downstream-Clustern bereitstellen möchten, müssen Sie Ziele definieren. Ziele funktionieren ähnlich wie Ziele in GitRepo.
Siehe Mapping zu Downstream Clustern.
Das folgende Beispiel erstellt ein nginx Deployment im lokalen Cluster:
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
Zielgruppen
Das Bundle kann mehrere Cluster ansprechen. Es verwendet dasselbe Targeting wie das GitRepo. Zusätzliche Anpassungsoptionen können pro Ziel angegeben werden:
targets:
- clusterSelector:
matchLabels:
env: dev
defaultNamespace: lab-1
helm:
values:
replicas: 1
Nutzungsbeschränkungen
Helm-Optionen, die mit dem Herunterladen des Helm-Charts zusammenhängen, werden ignoriert. Das Helm-Chart wird von der fleet-cli heruntergeladen, die die Bundles erstellt. Das Bundle muss alle Ressourcen aus dem Chart enthalten. Daher ignoriert das Bundle:
-
spec.helm.repo -
spec.helm.charts
Sie können ein fleet.yaml in Ressourcen nicht verwenden, es wird nur von der fleet-cli verwendet, um Bundles zu erstellen.
Das spec.targetRestrictions Feld ist nicht nützlich, da es eine Erlaubenliste für Ziele ist, die in spec.targets angegeben sind. Es ist nicht erforderlich, da targets explizit in einem Bundle angegeben werden und ein leeres targetRestrictions standardmäßig auf allow gesetzt wird.
Sie können die Fleet CLI verwenden, um ein Helm-Chart in ein bundle zu konvertieren. Für weitere Informationen, siehe Konvertieren Sie ein Helm-Chart in ein Bundle mit CLI..