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..