Coder Social home page Coder Social logo

hosted-providers-e2e's Introduction

HOSTED PROVIDERS E2E

AKS-E2E_head_2.9

EKS-E2E_head_2.9

GKE-E2E_head_2.9

How to run a test locally:

Environment Variables:

Following are the common environment variables that need to be exported for running a test:

  1. RANCHER_HOSTNAME - Public DNS where rancher is running. E.g. ec2-1-2-3-4.ap-south-1.compute.amazonaws.com or 1.2.3.4.sslip.io
  2. RANCHER_PASSWORD - Admin Password for login. We currently only test with 'admin' user.
  3. CATTLE_TEST_CONFIG: Config file containing cluster and cloud credential information, for e.g. cattle-config-provisioning.yaml and cattle-config-import.yaml in the root directory.
  4. PROVIDER: Type of the hosted provider you want to test. Acceptable values - gke, eks, aks
  5. DOWNSTREAM_K8S_MINOR_VERSION (optional): Downstream cluster Kubernetes version to test. If the env var is not provided, it uses a provider specific default value.
  6. DOWNSTREAM_CLUSTER_CLEANUP (optional): If set to true, downstream cluster will be deleted. Default: false.
  7. RANCHER_CLIENT_DEBUG (optional, debug): Set to true to watch API requests and responses being sent to rancher.

To run K8s Chart support test cases:

  1. KUBECONFIG: Upstream K8s' Kubeconfig file; usually it is k3s.yaml.
Upgrade Scenarios
  1. RANCHER_UPGRADE_VERSION: Rancher version to test upgrade. This version can be in the following formats: 2.9.0, 2.9.0-rc1, devel/2.9
  2. K8S_UPGRADE_MINOR_VERSION: K8s version to test. This value does not have to be exact, just the X.Y version. For e.g. 1.28. The complete version value will be fetched during the test.
  3. RANCHER_VERSION: Base rancher version to begin with. Since chart support tests are basically upgrade scenarios, the base version should be a released version, if it is an unreleased version such as 2.9-head, the test will fail. This version can be in the following formats: 2.9.0, 2.9.0-rc1
  4. RANCHER_CHANNEL (Optional): Acceptable values: latest (default), alpha, stable, prime

Note: These are E2E tests, so rancher (version=RANCHER_VERSION) will be installed by the test.

To run GKE:

  1. GCP_CREDENTIALS - a Service Account with a JSON private key and provide the JSON here. These IAM roles are required:
    • Compute Engine: Compute Viewer (roles/compute.viewer)
    • Project: Viewer (roles/viewer)
    • Kubernetes Engine: Kubernetes Engine Admin (roles/container.admin)
    • Service Accounts: Service Account User (roles/iam.serviceAccountUser)
  2. GKE_PROJECT_ID - Name of the Google Cloud Project
  3. GKE_ZONE - Zone in which GKE must be provisioned (default: 'asia-south2-c'). This environment variable takes precedence over the config file variable.

To run EKS:

  1. AWS_ACCESS_KEY_ID - AWS Access Key
  2. AWS_SECRET_ACCESS_KEY - AWS Secret Key
  3. EKS_REGION - Region in which EKS must be provisioned (default: 'ap-south-1'). This environment variable takes precedence over the config file variable.

To run AKS:

  1. AKS_CLIENT_ID - Azure Client ID Check Microsoft Entra ID to create or fetch value from an existing one
  2. AKS_CLIENT_SECRET - Azure Client Secret Check Microsoft Entra ID to create or fetch value from an existing one
  3. AKS_SUBSCRIPTION_ID - Azure Subscription ID (In this case it is similar to a Google Cloud Project, but the value is an ID). Check Azure Subscriptions
  4. AKS_REGION - Region in which AKS must be provisioned (default: 'centralindia'). This environment variable takes precedence over the config file variable.

Note: It is advisable that all the Hosted Provider cluster be provisioned in APAC region, this is because we want to geolocalize all the resources created by hosted provider.

Makefile targets to run tests

  1. make e2e-provisioning-tests - Covers the P0Provisioning test suite for a given ${PROVIDER}
  2. make e2e-import-tests - Covers the P0Importing test suite for a given ${PROVIDER}
  3. make e2e-support-matrix-importing-tests - Covers the SupportMatrixImporting test suite for a given ${PROVIDER}
  4. make e2e-support-matrix-provisioning-tests - Covers the SupportMatrixProvisioning test suite for a given ${PROVIDER}
  5. make e2e-k8s-chart-support-provisioning-tests - Focuses on K8sChartSupportProvisioning for a given ${PROVIDER}
  6. make e2e-k8s-chart-support-importing-tests - Focuses on K8sChartSupportImport for a given ${PROVIDER}
  7. make e2e-k8s-chart-support-importing-tests-upgrade - Focuses on K8sChartSupportUpgradeImport for a given ${PROVIDER}
  8. make e2e-k8s-chart-support-provisioning-tests-upgrade - Focuses on K8sChartSupportUpgradeProvisioning for a given ${PROVIDER}

Run make help to know about other targets.

Example

GKE Provisioning Tests

GKE_PROJECT_ID=some-project GCP_CREDENTIALS=<credentials-json> PROVIDER=gke RANCHER_HOSTNAME=ec2-1-2-3-4.ap-south-1.compute.amazonaws.com RANCHER_PASSWORD=admin123 CATTLE_TEST_CONFIG=/home/pvala/go/src/github.com/rancher/hosted-providers-e2e/hosted/gke/cattle-config-provisioning.yaml make e2e-provisioning-tests

GKE Import Tests

GKE_PROJECT_ID=some-project GCP_CREDENTIALS=<credentials-json> PROVIDER=gke RANCHER_HOSTNAME=ec2-1-2-3-4.ap-south-1.compute.amazonaws.com RANCHER_PASSWORD=admin123 CATTLE_TEST_CONFIG=/home/pvala/go/src/github.com/rancher/hosted-providers-e2e/hosted/gke/cattle-config-import.yaml make e2e-import-tests

EKS Provisioning Tests

EKS_REGION=ap-south-1 AWS_ACCESS_KEY_ID=<key-id> AWS_SECRET_ACCESS_KEY=<key> PROVIDER=eks RANCHER_HOSTNAME=ec2-1-2-3-4.ap-south-1.compute.amazonaws.com RANCHER_PASSWORD=admin123 CATTLE_TEST_CONFIG=/home/pvala/go/src/github.com/rancher/hosted-providers-e2e/hosted/gke/cattle-config-provisioning.yaml make e2e-provisioning-tests

EKS Import Tests

EKS_REGION=ap-south-1 AWS_ACCESS_KEY_ID=<key-id> AWS_SECRET_ACCESS_KEY=<key> PROVIDER=eks RANCHER_HOSTNAME=ec2-1-2-3-4.ap-south-1.compute.amazonaws.com RANCHER_PASSWORD=admin123 CATTLE_TEST_CONFIG=/home/pvala/go/src/github.com/rancher/hosted-providers-e2e/hosted/gke/cattle-config-import.yaml make e2e-import-tests

AKS Provisioning Tests

AKS_REGION=centralindia AKS_CLIENT_ID=<client-id> AKS_CLIENT_SECRET=<secret> AKS_SUBSCRIPTION_ID=<subscription-id> PROVIDER=aks RANCHER_HOSTNAME=ec2-1-2-3-4.ap-south-1.compute.amazonaws.com RANCHER_PASSWORD=admin123 CATTLE_TEST_CONFIG=/home/pvala/go/src/github.com/rancher/hosted-providers-e2e/hosted/gke/cattle-config-provisioning.yaml make e2e-provisioning-tests

AKS Import Tests

AKS_REGION=centralindia AKS_CLIENT_ID=<client-id> AKS_CLIENT_SECRET=<secret> AKS_SUBSCRIPTION_ID=<subscription-id> PROVIDER=aks RANCHER_HOSTNAME=ec2-1-2-3-4.ap-south-1.compute.amazonaws.com RANCHER_PASSWORD=admin123 CATTLE_TEST_CONFIG=/home/pvala/go/src/github.com/rancher/hosted-providers-e2e/hosted/gke/cattle-config-import.yaml make e2e-import-tests

hosted-providers-e2e's People

Contributors

valaparthvi avatar cpinjani avatar dependabot[bot] avatar anarkis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.