Working with Rancher: Release Validation Pipelines - rancher/shepherd GitHub Wiki

Release Validation Pipelines are pipelines that include multiple stages to set the environment, do some necessary preparation steps before running the test runs, and run standalone tests in a designed flow.

Going forward, doing some necessary preparation steps before running the test runs or setups is going to be called "Pipeline Packages" as their job is purely to handle flow between different pipeline stages.

Pipeline Packages

This section explains pipeline packages that are used in multiple-release validation pipelines. Pipeline packages for Rancher Release Validation Pipelines can be found here.

HA Install (with Corral)

This pipeline package is responsible for creating Rancher HA with the Corral. The environment flag called InstallRancher affects the behavior of the package.

When InstallRancher environment flag is not provided:

  1. Install the given Rancher HA Corral Package from the configuration
  2. Create admin token for the Rancher HA Instance
  3. Update the configuration file to store the admin token
  4. Run the HA Post Install

When InstallRancher environment flag is not provided:

  1. Skips Rancher Installation

More information can be found in this directory.

HA Install Configuration
corralConfigs:
  corralConfigVars:
    agent_count: 0 #Integer
    aws_access_key: "" #String
    aws_ami: "" #String
    aws_hostname_prefix: "" #String
    aws_region: "" #String
    aws_route53_zone: "" #String
    aws_secret_key: "" #String
    aws_security_group: "" #String
    aws_ssh_user: "" #String
    aws_subnet: "" #String
    aws_volume_size: 0 #Integer
    aws_volume_type: "" #String
    aws_vpc: "" #String
    corral_name: "" #String
    kubernetes_version: "vMyVersion" #String, with prefix v
    rancher_version: "myVersion" #String, without prefix
    server_count: 0 #Integer
    instance_type: "" #String
    #Above is only for rancher AWS HA Corral Package.
    #For other packages such as Airgap or Private Registry; you might need to add or remove new corral config variables
  corralSSHPath: "myPEMKeyPath" #String
corralPackages:
  corralPackageImages:
    rancherha: "myPathToCorralRancherHAPackage" #String
corralRancherHA:
    name: "rancherha" #String, needs to match with the above package name

HA Post Install (with v3) (Deprecated)

This pipeline package is usually used after an HA Rancher instance creation. This package is designed to be used after the Legacy Python HA Creation.

  1. Create an admin token
  2. Create a temporary configuration file to instantiate a Shepherd client
  3. Generate a kubeconfig with the client
  4. Generate a groovy file to store the base64 value of kubeconfig and token

After the last step, this groovy file that stores base64 kubeconfig and admin token can be copied to the Jenkins layer to be used. More information can be found in this directory.

Downstream Cleanup (with v3) (Deprecated)

This pipeline package is usually used to clean up the downstream clusters and indirectly the clusters' resources with them.

  1. Create an admin token
  2. Create a temporary configuration file to instantiate a Shepherd client
  3. Loop through the clusters list; delete the downstream clusters and wait for its Deleted watch event

More information can be found in this directory.

Rancher Cleanup (with Corral)

Similar to Downstream Cleanup, this pipeline package is usually used to clean up the downstream clusters and Corral Packages. With this pipeline package, including the Rancher HA, all Corral Packages can be deleted.

  1. Loop through the clusters list; deletes the downstream clusters and waits for its Deleted watch event
  2. Delete all Corral Packages

More information can be found in this directory.

Release Upgrade

This pipeline package is responsible for generating different configuration files depending on the given cluster matrix. It's usually used when the outputs for the downstream clusters varies and the user needs more flexible downstream creations.

  1. Map HA-related fields as this can be used with both HA Post Install and HA Install packages
  2. Update original configuration file to have hard-coded go test regexes, and to have an environment flag called UpdateClusterName
  3. Loop through different cluster types and generates a new configuration file; to match given i.e. images, ssh user, kubernetes versions
  4. Populate each configuration file in a created directory called cattle-configs.

Notes:

  • An environment flag called UpdateClusterName updates the test configuration's YAML cluster name field, in all provisioning tests, after the cluster creation steps.
  • Provider names and different user types, particularly for all provisioning tests, are hardcoded in their corresponding test case regexp while generating the configuration files.

More information can be found in this directory.

Release Upgrade Configuration
clusters:
  rke1:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
        tags: "" #String, tagged tests that are going to run against this cluster
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
        tags: "" #String, tagged tests that are going to run against this cluster
    #This is a slice of structs, elements are expandable
  rke2:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
        tags: "" #String, tagged tests that are going to run against this cluster
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
        tags: "" #String, tagged tests that are going to run against this cluster
    #This is a slice of structs, elements are expandable
  k3s:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
        tags: "" #String, tagged tests that are going to run against this cluster
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
        tags: "" #String, tagged tests that are going to run against this cluster
    #This is a slice of structs, elements are expandable
  hosted:
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
      tags: "" #String, tagged tests that are going to run against this cluster
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
      tags: "" #String, tagged tests that are going to run against this cluster
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
      tags: "" #String, tagged tests that are going to run against this cluster
    # This is a slice of structs, elements are expandable

Qase Reporting

Qase pipeline package is responsible for reporting the test runs on Qase. It has two package in it.

  • Reporter: Updates Qase with test cases and their statuses
  • Test run: Starts and ends test runs for our recurring runs pipelines

Reporter

  1. Create a Qase configuration with its embedded HTTP client
  2. After the token is added to this configuration, a Qase Go client is instantiated
  3. Get the Qase Test Run ID
  4. Parsed Go Tests are reported under this Qase Test Run

More information can be found in this directory.

Test Run

  1. Create a Qase configuration with its embedded HTTP client
  2. After the token is added to this configuration, a Qase Go client is instantiated
  3. When a flag called startRun is provided, creates a test run; otherwise completes the test run

More information can be found in this directory.

Pipelines

This section covers Release Test Validation Pipelines with their steps, purposes, and pipeline packages. Read more about the Pipeline Packages, here.

Release Airgap Pipeline

Release Airgap Pipeline is a pipeline for the Rancher release testing process that covers:

  1. Deploy Private Registry
  2. Deploy Rancher on a specified version and cluster type
  3. Run Airgap checks

Airgap Pipeline uses Corral Package. For Rancher and Airgap setups, you can check the required corral config variables from this package.

You can learn more about the Pipeline here.

Release Airgap Pipeline Configuration - Combined and Ready to Hit Run
#Corral HA & Airgap Packages Configuration ----- START -----

corralConfigs:
    corralConfigVars:
        agent_count: 0 #Integer, Agent Count
        server_count: 0 #Integer, Server Count
        aws_access_key: "" #String, AWS Access Key
        aws_ami: "" #String, AWS AMI
        aws_hostname_prefix: "" #String, AWS Hostname Prefix
        aws_region: "" #String, AWS Region
        aws_route53_zone: "" #String, AWS Route 53
        aws_secret_key: "" #String, AWS Secret Key
        aws_security_group: "" #String, AWS Security Group
        aws_ssh_user: "" #String, AWS SSH User
        aws_subnet: "" #String, AWS Subnet
        aws_vpc: "" #String, AWS VPC
        bastion_ip: "" #String, Only use if the air gap setup was created beforehand
        rancher_version: "" #String, Rancher version
        kubernetes_version: "" #String, Kubernetes version
        corral_private_key: #String, only use if the air gap setup has been created beforehand you need this key when provisioning an airgap custom cluser
        corral_public_key: #String, only use if the air gap setup has been created beforehand you need this key when provisioning an airgap custom cluser
        instance_type: "" #String AWS Instance Type
        registry_cert: "" #String, registry certification when provisioning a airgap setup
        registry_key: "" #String, registry key when provisioning a airgap setup
    corralSSHPath: "myPEMKeyPath" #String
corralPackages:
  corralPackageImages:
    airgapCustomCluster: "myPathToCorralRancherAirgapCustomClusterPackage" #String
    rancherha: "myPathToCorralRancherHAPackage" #String, this should match corralRancherHA input
corralRancherHA:
    name: "rancherha" #String, needs to match with the above package name

#Corral HA & Airgap Packages Configuration ----- END -----

#Shepherd and Validation Tests Configuration ----- START -----

provisioningInput: "" #Provisioning Input, from the v2/validation provisioning tests
    providers:
    - aws
  k3sKubernetesVersion:
  - "vMYVERSION" # String with prefix v, as UI shows
  # This is a slice of structs, elements are expandable
  rke1KubernetesVersion:
  - "vMYVERSION" # String with prefix v, as UI shows
  # This is a slice of structs, elements are expandable
  rke2KubernetesVersion:
  - "vMYVERSION" # String with prefix v, as UI shows
  # This is a slice of structs, elements are expandable
#Provisioning Input needs more input, and those inputs can be found v2/validation provisioning tests
registries:
    existingNoAuthRegistry: "" #String, only add if the registry has been created beforehand
flags:
    desiredflags: "" #Environmentflags as strings, f.e. UseExistingRegistries
rancher:
    host: "" #String, this should match what the corral will airgap rancher cluster hostname would be
    adminToken:  "" #String, only have if the rancher air gap setup has been created beforehand

#Shepherd and Validation Tests Configuration ----- END -----

Release HA Upgrade Pipeline

Release HA Upgrade Pipeline is a pipeline for the Rancher release testing process that covers:

  1. Deploy Rancher on a specified version
  2. Deploy clusters
  3. Run pre-upgrade checks
  4. Upgrade Rancher
  5. Run post-upgrade checks
  6. Upgrade cluster versions
  7. Run post-upgrade checks
  8. Deploy new clusters

You can learn more about the Pipeline here.

Release HA Upgrade Pipeline Configuration - Combined and Ready to Hit Run
#HA Configuration (with v3 Legacy HA Deploy) ----- START -----

ha:
  host: "" # String, needs to be URL
  chartVersion: "" # String without any prefix, no v in front of version
  chartVersionToUpgrade: "" # String without any prefix, no v in front of version
  rkeVersion: "" # String with prefix v 
  imageTag: "" # String with prefix v 
  imageTagToUpgrade: "" # String with prefix v 
  helmExtraSettings: "" # String, Helm extra settings 
  helmExtraSettingsToUpgrade:  "" #String, Helm extra Settings while Upgrading Rancher
  helmRepo: "" # String
  certOption: "" # String
  insecure: false # String
  cleanup: false  # String, default is true

#HA Configuration (with v3 Legacy HA Deploy) ----- END -----

#Release Upgrade Pipeline Package Configuration ----- START -----

clusters:
  rke1:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
  rke2:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
      - provider: "aws"
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "ubuntu"
        cni: ["calico"]
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
  k3s:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
  hosted:
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable

#Release Upgrade Pipeline Package Configuration ----- END -----

#Standalone Tests Configuration ----- START -----

provisioningInput:  #Provisioning Input, from the v2/validation provisioning tests, only Node and Machine Pools are needed, other values get overwritten from the cluster matrix above
  nodePools: #Node Pools from r/r v2/validation provisioning tests
  machinePools: #Machine Pools from r/r v2/validation provisioning tests


#Depending on the cluster types you want to test, the required provisioning test-related inputs may vary, you can learn more about them from r/r v2/validation provisioning packages readmes

#Standalone Tests Configuration ----- END -----

Release Local Upgrade Pipeline

Release Local Upgrade Pipeline is a pipeline for the Rancher release testing process that covers:

  1. Deploy Rancher on a specified version and cluster type
  2. Deploy clusters
  3. Run preupgrade checks
  4. Upgrade Local cluster Kubernetes version
  5. Run postupgrade checks
  6. Upgrade cluster versions
  7. Run postupgrade checks
  8. Deploy new clusters

Release Local Upgrade Pipeline uses Corral Package. For Rancher Instance creation, you can check the required corral config variables from these package; Rancher with K3s, RKE1 and RKE2 local cluster options.

You can learn more about the Pipeline here.

Release Local Upgrade Pipeline Configuration - Combined and Ready to Hit Run
#Corral HA Configuration ----- START -----

corralConfigs:
  corralConfigVars:
    agent_count: 0 #Integer
    aws_access_key: "" #String
    aws_ami: "" #String
    aws_hostname_prefix: "" #String
    aws_region: "" #String
    aws_route53_zone: "" #String
    aws_secret_key: "" #String
    aws_security_group: "" #String
    aws_ssh_user: "" #String
    aws_subnet: "" #String
    aws_volume_size: 0 #Integer
    aws_volume_type: "" #String
    aws_vpc: "" #String
    corral_name: "" #String
    kubernetes_version: "vMyVersion" #String, with prefix v
    rancher_version: "myVersion" #String, without prefix
    server_count: 0 #Integer
    instance_type: "" #String
    # Above is only for rancher AWS HA Corral Package.
    # For other packages such as Airgap or Private Registry; you might need to add or remove new corral config variables
  corralSSHPath: "myPEMKeyPath" #String
corralPackages:
  corralPackageImages:
    rancherha: "myPathToCorralRancherHAPackage" #String
corralRancherHA:
    name: "rancherha" #String, needs to match with the above package name

#Corral HA Configuration ----- END -----

#Release Upgrade Pipeline Package Configuration ----- START -----

clusters:

  local:
    kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
    kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
    enabledFeatures:
      chart: false # Boolean, pre/post upgrade checks, default is false
      ingress: false # Boolean, pre/post upgrade checks, default is false

  rke1:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
  rke2:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
      - provider: "aws"
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "ubuntu"
        cni: ["calico"]
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
  k3s:
    nodeProvider:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
    custom:
      - provider: "" # Name of the provider
        kubernetesVersion: "vMYVERSION" # String with prefix v, as UI shows
        kubernetesVersionToUpgrade: "vMYVERSION" # String with prefix v, as UI shows
        image: "" # String
        sshUser: "" # String
        cni: ["calico"] # Slice of strings, options can be found in provisioning configuration
        enabledFeatures:
          chart: false # Boolean, pre/post upgrade checks, default is false
          ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable
  hosted:
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
    - provider: "" # Name of the provider
      kubernetesVersion: "MYVERSION" # String without prefix v, as UI shows
      kubernetesVersionToUpgrade: "MYVERSION" # String without prefix v, as UI shows
      enabledFeatures:
         chart: false # Boolean, pre/post upgrade checks, default is false
         ingress: false # Boolean, pre/post upgrade checks, default is false
    #This is a slice of structs, elements are expandable

#Release Upgrade Pipeline Package Configuration ----- END -----

#Standalone Tests Configuration ----- START -----

provisioningInput:  #Provisioning Input, from the v2/validation provisioning tests, only Node and Machine Pools are needed, other values get overwritten from the cluster matrix above
  nodePools: #Node Pools from r/r v2/validation provisioning tests
  machinePools: #Machine Pools from r/r v2/validation provisioning tests


#Depending on the cluster types you want to test, the required provisioning test-related inputs may vary, you can learn more about them from r/r v2/validation provisioning packages readmes

#Standalone Tests Configuration ----- END -----

Release Private Registries Pipeline

Release Private Registries Pipeline is a pipeline for the Rancher release testing process that covers:

  1. Deploy Private Registry
  2. Deploy Rancher on a specified version and cluster type
  3. Run Private Registry checks

You can learn more about the Pipeline here.

Private Registires Pipeline uses [Corral Package][rancher-registiries-corral]. For Rancher and Private Registry setups, you can check the required corral config variables from this package.

Release Private Registries Pipeline Configuration - Combined and Ready to Hit Run
#Corral HA & Registries Packages Configuration ----- START -----

corralConfigs:
    corralConfigVars:
        agent_count: 0 #Integer, Agent Count
        server_count: 0 #Integer, Server Count
        aws_access_key: "" #String, AWS Access Key
        aws_ami: "" #String, AWS AMI
        aws_hostname_prefix: "" #String, AWS Hostname Prefix
        aws_region: "" #String, AWS Region
        aws_route53_zone: "" #String, AWS Route 53
        aws_secret_key: "" #String, AWS Secret Key
        aws_security_group: "" #String, AWS Security Group
        aws_ssh_user: "" #String, AWS SSH User
        aws_subnet: "" #String, AWS Subnet
        aws_vpc: "" #String, AWS VPC
        bastion_ip: "" #String, Only use if the air gap setup was created beforehand
        rancher_version: "" #String, Rancher version
        kubernetes_version: "" #String, Kubernetes version
        corral_private_key: #String, only use if the air gap setup has been created beforehand you need this key when provisioning an registry custom cluser
        corral_public_key: #String, only use if the air gap setup has been created beforehand you need this key when provisioning an registry custom cluser
        instance_type: "" #String AWS Instance Type
        registry_cert: "" #String, registry certification when provisioning a registry setup
        registry_key: "" #String, registry key when provisioning a registry setup
    corralSSHPath: "myPEMKeyPath" #String
corralPackages:
corralPackageImages:
    registryauthdisabled: "myPathToRegistryAuthDisabledPackage" #String
    registryauthenabled: "myPathToRegistryAuthEnabledPackage" #String
    rancherha: "myPathToCorralRancherHAPackage" #String, this should match corralRancherHA input
corralRancherHA:
    name: "rancherha" #String, needs to match with the above package name

#Corral HA & Private Registries Packages Configuration ----- END -----

#Shepherd and Validation Tests Configuration ----- START -----
registries:
  existingAuthRegistry: # Configuration for existing auth registry (optional)
    password: "" #String 
    url: "" #String
    username: corral
  ecrRegistryConfig: # Configuration for existing ecr registry (optional)
    url: <ID>.dkr.ecr.us-west-1.amazonaws.com
    password: "" #String
    awsAccessKeyId: "" #String 
    awsSecretAccessKey: "" #String
  existingNoAuthRegistry: "" #String
  registryConfigNames:
  - registryauthdisabled
  - registryauthenabled
  - corralecr

provisioningInput: "" #Provisioning Input, from the v2/validation provisioning tests
    providers:
    - aws
  k3sKubernetesVersion:
  - "vMYVERSION" # String with prefix v, as UI shows
  #This is a slice of structs, elements are expandable
  rke1KubernetesVersion:
  - "vMYVERSION" # String with prefix v, as UI shows
  #This is a slice of structs, elements are expandable
  rke2KubernetesVersion:
  - "vMYVERSION" # String with prefix v, as UI shows
  #This is a slice of structs, elements are expandable
#Provisioning Input needs more input, and those inputs can be found v2/validation provisioning tests
registries:
    existingNoAuthRegistry: "" #String, only add if the registry has been created beforehand
flags:
    desiredflags: "" #Environmentflags as strings, f.e. UseExistingRegistries
rancher:
    host: "" #String, this should match what the corral will registry rancher cluster hostname would be
    adminToken:  "" #String, only have if the rancher air gap setup has been created beforehand

#Shepherd and Validation Tests Configuration ----- END -----

⚠️ **GitHub.com Fallback** ⚠️