Crea un recurso Bundle

Los Bundles se crean automáticamente por SUSE® Rancher Prime Continuous Delivery cuando se crea un GitRepo. En la mayoría de los casos, Bundles no debe ser creado manualmente por el usuario. Si deseas desplegar recursos desde un repositorio git, utiliza un GitRepo en su lugar.

Si deseas desplegar recursos sin un repositorio git, sigue esta guía para crear un Bundle.

Si deseas desplegar recursos sin ejecutar un controlador Fleet. Consulta Convierte un gráfico de Helm en un Bundle utilizando CLI.

Al crear un GitRepo, SUSE® Rancher Prime Continuous Delivery obtendrá los recursos de un repositorio git y los añadirá a un Bundle. Al crear un Bundle, los recursos deben especificarse explícitamente en la especificación de Bundle. Los recursos pueden ser comprimidos con gz. Consulta managedchart.go un ejemplo de cómo Rancher utiliza la compresión en el código Go.

Si deseas desplegar en clústeres descendentes, necesitas definir objetivos. Los objetivos funcionan de manera similar a los objetivos en GitRepo. Consulta Mapeo a clústeres descendentes.

El siguiente ejemplo crea un nginx Deployment en el clúster local:

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

Destinos

El Bundle puede dirigirse a múltiples clústeres. Utiliza la misma asignación de objetivos que el GitRepo. Opciones de personalización adicionales pueden ser especificadas para cada objetivo:

targets:
- clusterSelector:
    matchLabels:
      env: dev
  defaultNamespace: lab-1
  helm:
    values:
      replicas: 1

limitaciones

Las opciones de Helm relacionadas con la descarga del gráfico de Helm serán ignoradas. El gráfico de Helm es descargado por el fleet-cli, que crea los Bundles. El Bundle debe contener todos los recursos del gráfico. Por lo tanto, el Bundle ignorará:

  • spec.helm.repo

  • spec.helm.charts

No puedes usar un fleet.yaml en los recursos, solo se utiliza por el fleet-cli para crear Bundles.

El campo spec.targetRestrictions no es útil, ya que es una lista de permitidos para los objetivos especificados en spec.targets. No es necesario, ya que targets se especifican explícitamente en un Bundle y un targetRestrictions vacío, por defecto, permite.

Puedes usar Fleet CLI para convertir un gráfico de Helm en un bundle. Para más información, consulta Convertir un gráfico de Helm en un Bundle usando CLI..