Giter VIP home page Giter VIP logo

osde2e's Introduction

OSDe2e

GoDoc

Introduction

A comprehensive test framework used for Service Delivery to test all aspects of Managed OpenShift Clusters (OpenShift Dedicated). The data generated by the different test coverage is used to inform product releases and decisions.

OSDe2e key features are:

  • Portable test framework that can run anywhere to validate end to end test workflows
    • Run locally from a developers workstation or from a CI application
  • Supports create/delete different cluster deployment types
    • ROSA, ROSA Hosted Control Plane (e.g. HyperShift), OSD on AWS
    • OSD on GCP
    • Azure (Azure Red Hat OpenShift)
  • Performs cluster health checks to ensure cluster is operational prior to running tests
  • Perform cluster upgrades
  • Captures artifacts for later use, such as
    • Cluster install/uninstall logs
    • Test logs
    • Metrics
    • Metadata
    • Must gather artifacts
  • Tests OSD operators along with other OpenShift features from a customer/SRE point of view
  • Provides a test harness to validate Add Ons

When osde2e is invoked, the standard workflow is followed:

  • Load configuration
  • Cluster deployment (when not leveraging an existing cluster)
  • Verify the health of the cluster
  • Run tests (pre upgrade)
  • Collect logs, metrics and metadata
  • Upgrade cluster (when defined)
  • Verify the health of the cluster post upgrade
  • Run tests (post upgrade - when upgrade is defined)
  • Collect logs, metrics and metadata
  • Cluster deprovision (when this is toggled on)

Prerequisites

Prior to running osde2e, make sure you meet the minimal prerequisites defined below:

  • Navigate to OpenShift Cluster Manager (OCM) to obtain an OpenShift offline token.
    • Save your token into the environment variable OCM_TOKEN for later usage
  • Verify (submit a request if required to ocm resources) your Red Hat account has adequate quota for deploying clusters based on your preferred deployment type
  • A go workspace running the minimal version defined in the go.mod

Run

OSDe2e can be invoked by one of two ways. Refer to each section below to learn how to run it.

From Source

Running from source requires you to build the osde2e binary. Follow the steps below to do this:

git clone https://github.com/openshift/osde2e.git
cd osde2e
go mod tidy
make build

On completion of the make build target, the generated binary will reside in the directory ./out/. Where you can then invoke osde2e ./out/osde2e --help.

From Container Image

Running from a container image using a container engine (e.g. docker, podman). You can either build the image locally or consume the public image available on quay.io.

export CONTAINER_ENGINE=<docker|podman>

# Build Image
make build-image
$CONTAINER_ENGINE run quay.io/app-sre/osde2e:latest <args>

# Pull Image
$CONTAINER_ENGINE pull quay.io/app-sre/osde2e:latest
$CONTAINER_ENGINE run quay.io/app-sre/osde2e:latest <args>

Config Input

OSDe2e provides multiple ways for you to provide input to tailor what test workflows you wish to validate. It provides four ways for you to provide input (order is lowest to highest precedence):

  • Use pre-canned composable default configs
  • Provide a custom config
  • Environment variables
  • Command line options

It is highly recommended to leave sensitive settings as environment variables (e.g. OCM_TOKEN). This way the chance of these settings defined in a custom config file are not checked into source control.

Pre-Canned Default Configs

The configs package provides pre-canned default configs available for you to use. These config files are named based on what action they are performing. Within the config file can contain multiple settings to tailor osde2e.

Example config stage:

This default config is telling osde2e to use the stage OCM environment.

ocm:
  env: stage

You can provide N+1 pre-canned configs to osde2e. Example below will deploy a OSD cluster within the OCM stage environment.

./out/osde2e test --configs aws,stage

Custom Config

The composable configs consist of a number of small YAML files that can all be loaded together. Rather than using the built in configs, you can also elect to build your own custom YAML file and provide that using the --custom-config CLI option.

osde2e test --custom-config ./osde2e.yaml

The custom config below is a basic example for deploying a ROSA STS cluster and running all of the OSD operators tests that do not have the informing label associated to them.

dryRun: false
provider: rosa
cloudProvider:
  providerId: aws
  region: us-east-1
rosa:
  env: stage
  STS: true
cluster:
  name: osde2e
tests:
  ginkgoLabelFilter: Operators && !Informing

You can use both pre-canned default configs and your own custom configs:

./out/osde2e test --configs aws --custom-config ./osde2e.yaml

Environment Variables

Any config option can be passed in using environment variables. Please refer to the config package for exact environment variable names.

Below is an example to spin up a OSD cluster and test it:

OCM_TOKEN=<ocm-token> \
OSD_ENV=prod \
CLUSTER_NAME=my-cluster \
CLUSTER_VERSION=4.12.0 \
osde2e test

These also can be combined with pre-canned default configs and custom configs:

OCM_TOKEN=<ocm-token> \
CLUSTER_VERSION=4.12.0 \
osde2e test --configs prod,e2e-suite
OCM_TOKEN=<ocm-token> \
CLUSTER_VERSION=4.12.0 \
osde2e test --configs prod,e2e-suite

A list of commonly used environment variables are included in Config variables.

Command Line Options

Some configuration settings are also exposed as command-line options. A full list can be displayed by providing --help after the command.

Below is an example of using options for the test command:

./out/osde2e test --cluster-id <cluster-id> \
  --provider stage \
  --skip-health-check \
  --focus-tests "RBAC Operator"

Another example below is you can skip cluster health check, must gather as follows.

POLLING_TIMEOUT=1 \
./out/osde2e test --cluster-id=<cluster-id> \
--configs stage \
--skip-must-gather \
--skip-health-check \
--focus-tests="rh-api-lb-test"

A list of commonly used CLI flags are included in Config variables.

Examples

To see more examples of configuring input for osde2e, refer to the prowgen jobs in the OpenShift release repository owned by the team. These will be always up to date with the latest changes osde2e has to offer.

Cluster Deployments

OSDe2e provides native support for deploying the following cluster types:

  • ROSA
  • ROSA Hosted Control Plane (HyperShift)
  • OSD (OpenShift Dedicated)

You can have osde2e deploy the cluster if a cluster ID is not provided or you can leverage an existing cluster by giving the cluster ID as input at runtime.

You can also provide it a kubeconfig file and osde2e can attempt to target that cluster.

export TEST_KUBECONFIG=<kubeconfig-file>
./out/osde2e test <args>

It may be possible to test against a non Managed OpenShift cluster (a traditional OpenShift Container Platform cluster). Though this will require you to alter the input settings as non managed clusters will not have certain items applied to them like a Managed cluster would (e.g. OSD operators, health checks, etc).

Tests

OSDe2e currently holds all core and operator specific tests and are maintained by the CICD team. Test types range from core OSD verification, OSD operators to scale/conformance.

Currently in flight: OSD operator tests will no longer reside in osde2e repository and live directly alongside the operator source code in its repository

Selecting Tests To Run

OSDe2e supports a couple different ways you can select which tests you would like to run. Below presents the commonly used methods for this:

  • Using the label filter. Labels are ginkgos way to tag test cases. The examples below will tell osde2e to run all tests that have the E2E label applied.
# Command line option
osde2e test --label-filter E2E

# Passed in using a custom config file
tests:
  ginkgoLabelFilter: E2E
  • Using focus strings. Focus strings are ginkgos way to select test cases based on string regex.
# Command line option
osde2e test --focus-tests "OCM Agent Operator"

# Custom config file
tests:
  focus: "OCM Agent Operator"
  • Using a combination of labels and focus strings to fine tune your test selection. The examples below tell osde2e to run all ocm agent operator tests and avoid running the upgrade test case.
# Command line options
osde2e test --label-filter "Operators && !Upgrade" --focus-tests "OCM Agent Operator"

# Custom config file
tests:
  ginkgoLabelFilter: "Operators && !Upgrade"
  focus: "OCM Agent Operator"

Writing Tests

Refer to the Writing Tests document for guidelines and standards.

Third-party (Addon) tests are built as containers that spin up and report back results to OSDe2e. These containers are built and maintained by external groups looking to get CI signal for their product within OSD. The definition of a third-party test is maintained within the managed-tenants repo and is returned via the Add-Ons API.

For more information please see the OSDE2E Test Harness repository to learn more for writing add on tests.

Reporting

Each time osde2e runs it captures as much data that it possible can. Data can include cluster/pod logs, prometheus metrics, test data generated, hive version and osde2e version to identify any possible flakiness in the environment.

Each time tests are executed a JUnit XML file will be generated to capture all the tests that ran and statistics about them (e.g. pass/fail, duration). These XML files will be later used by external applications to present metrics and data for others to see into. An example of this is they are used to present data in TestGrid Dashboards.

CI Jobs

Periodic jobs are run daily validating Managed OpenShift clusters, using osde2e. Check out the CI Jobs page to learn more.

osde2e's People

Contributors

aliceh avatar cblecker avatar clcollins avatar dependabot[bot] avatar dofinn avatar dustman9000 avatar jbpratt avatar jeefy avatar jeremyeder avatar mdwn avatar mjlshen avatar mrbarge avatar mrsantamaria avatar nautilux avatar npecka avatar openshift-ci[bot] avatar openshift-merge-bot[bot] avatar openshift-merge-robot avatar ravitri avatar red-hat-konflux[bot] avatar ritmun avatar ryankwilliams avatar sedroche avatar tnierman avatar treymer avatar varunraokadaparthi avatar wanghaoran1988 avatar whereswaldon avatar yiqinzhang avatar yithian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

osde2e's Issues

Reorganize Test Grid Tabs

  • Create a new top-level tab: redhat-openshift-dedicated
  • Create sub-tabs for prod and stage test results.
  • Adjust existing tests to report into new tabs.
  • Do not delete old test results or the tab.
  • Mentally prepare for future additional tabs (beyond prod and stage).

@ethernetdan

Add upgrade tests to pipeline

Run the existing origin-ci upgrade pipeline test on OSD. This may involve some way of installing the last green OSDe2e, looking for a matching upgrade target for that version in the cincinnati graph, then upgrading to that matching target.

We also need to be able to test nightlies as upgrade targets.

Ensure int, stage and prod have a documented version rollout procedure

We need to be able to test nightlies. Not sure if that belongs in int or not. Right now all 3 environments use the release-controller to pick up the latest "green" OCP nightly. But it probably needs to be changed to the latest "stable" for stage and prod, and have int be "the latest green".

Determine which Regions and AZs OSD can be installed to

  • List all AZs within all supported AWS regions

    • We support all regions EXCEPT GovCloud, China and Osaka
    • Must use AZ ID's, not friendly-names (e.g. NOT us-east-1a)
  • Create an OSD that spreads to all AZ within that region (# of worker nodes should be equal to the number of AZs within the region)

  • Iterate through all supported AWS regions

  • Identify total number of clusters that this test would create

    • Need to know approx cost
  • Publish the pass/fail list somewhere (where eventually UHC could consume it)

  • Identify if it possible to query the AWS (or Azure) API to determine instance availability

@jhernand do you have a reference to the AZ "id" (which does not get remapped).

Handling testing of install-time cluster configuration variants

We need a prioritized list of install-time OCM permutations that will become part of our CI pipeline.

Initial list of tests that should be run when a new CIS is merged into integration environment:

  • Single AZ
  • Multi AZ
  • Instance types
  • Cloud Providers
  • Cloud Provider Regions
  • Which environment to run in: int / stage / prod
  • Upgrades

Possible phase 2 list:

  • Private Clusters
  • Windows containers

Documentation claims min go version of 1.13 however go.mod requires 1.16

In the ReadMe it states that the required minimum version of go is 1.13. On the next line it tells the user to install the appropriate dependencies via go mod tidy. This, however, requires version 1.16 of go and fails with anything below that.

Snip from go.mod

module github.com/openshift/osde2e

go 1.16

collect cluster state for failed runs

Related: #32

Recently there have been two CI clusters that have timed out on create:

https://prow.k8s.io/view/gcs/redhat-openshift-osd-e2e/logs/osd-stage-4.1/301
and
https://prow.k8s.io/view/gcs/redhat-openshift-osd-e2e/logs/osd-stage-4.1/284

I noticed that there are no logs gathered in these cases, and the only error we get is failed waiting for cluster ready: timed out waiting for cluster '16j5ft2lkejqnippd0lq517q2tp314fq' to be ready.

Please always get logs, even for cases where provisioning fails (whether it is instant, or times outs).

Is it possible to use osde2e against pre-existing prod clusters?

Hi team. Thank you for osde2e and your effort.
Seems likely the osde2e works only for clusters created by itself(with ocm).
Our expectation is to run the osde2e against the preexisting clusters to get the cluster status. Is there any functionality to do like this or any milestone?
We are willing to contribute for it.
Regards.
Jose.

Failed to download kubeconfig file when --kube-config-path destination exists

If I try to download kubeconfig file using a preexisting folder, command fails, but if folder is created by the command, it works

[morenod@morenod-laptop osd]$ mkdir /tmp/kubekube

[morenod@morenod-laptop osd]$ osde2e/out/osde2ectl --custom-config custom_config.yaml get -k -i 1hihgcluo1cnd0hqke7rvhla1jgcqm13 --kube-config-path /tmp/kubekube
2020/12/14 14:33:14 Custom YAML config provided, loading from custom_config.yaml
             NAME: osde2e-glgxq
               ID: 1hihgcluo1cnd0hqke7rvhla1jgcqm13
            STATE: installing
           STATUS: waiting-for-ready
            OWNER: dsanzmor
INSTALLED VERSION: openshift-v4.5.13
  UPGRADE VERSION: 
           JOB ID: -1
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x1a9a5e9]

goroutine 1 [running]:
github.com/openshift/osde2e/cmd/osde2ectl/get.run(0x30414a0, 0xc00044c4d0, 0x0, 0x7, 0x0, 0x0)
	/home/morenod/osd/osde2e/cmd/osde2ectl/get/cmd.go:166 +0x1889
github.com/spf13/cobra.(*Command).execute(0x30414a0, 0xc00044c380, 0x7, 0x7, 0x30414a0, 0xc00044c380)
	/home/morenod/go/pkg/mod/github.com/spf13/[email protected]/command.go:842 +0x47c
github.com/spf13/cobra.(*Command).ExecuteC(0x30419e0, 0x1, 0xc000337f78, 0x408005)
	/home/morenod/go/pkg/mod/github.com/spf13/[email protected]/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
	/home/morenod/go/pkg/mod/github.com/spf13/[email protected]/command.go:887
main.main()
	/home/morenod/osd/osde2e/cmd/osde2ectl/main.go:36 +0x31


[morenod@morenod-laptop osd]$ echo $?
2


[morenod@morenod-laptop osd]$ osde2e/out/osde2ectl --custom-config custom_config.yaml get -k -i 1hihgcluo1cnd0hqke7rvhla1jgcqm13 --kube-config-path /tmp/kubekube2
2020/12/14 14:33:48 Custom YAML config provided, loading from custom_config.yaml
             NAME: osde2e-glgxq
               ID: 1hihgcluo1cnd0hqke7rvhla1jgcqm13
            STATE: installing
           STATUS: waiting-for-ready
            OWNER: dsanzmor
INSTALLED VERSION: openshift-v4.5.13
  UPGRADE VERSION: 
           JOB ID: -1
File directory is invalid -  stat /tmp/kubekube2: no such file or directory Will create a new directory.
Successfully downloaded the kubeconfig into - /tmp/kubekube2/osde2e-glgxq-kubeconfig.txt . Run the command "export TEST_KUBECONFIG= /tmp/kubekube2/osde2e-glgxq-kubeconfig.txt "


[morenod@morenod-laptop osd]$ ls /tmp/kubekube/
[morenod@morenod-laptop osd]$ ls /tmp/kubekube2
osde2e-glgxq-kubeconfig.txt

Interactive debugging

Origin CI doesn't allow keeping failed clusters around indefinitely. They defer cluster delete for ~1 hour, during which time you can login as cluster-admin and debug.

Fix production tests

The production test job is currently not running due to a configuration issue. It should be fixed and restarted.

go get fails with unknown revision 000000000000

$ go get github.com/openshift/osde2e/cmd/osde2e
go: found github.com/openshift/osde2e/cmd/osde2e in github.com/openshift/osde2e v0.0.0-20200518142820-7daa37b719e4
go get: github.com/openshift/osde2e@v0.0.0-20200518142820-7daa37b719e4 requires
	github.com/operator-framework/operator-lifecycle-manager@v0.0.0-20190926160646-a61144936680 requires
	github.com/openshift/api@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000

See the unknown revision issue.

--skip-health-check is not working

When launching osde2e with parameter --skip-health-checks, installation waits for 600 seconds and ends without waiting for cluster installation:

$ ../osd/osde2e/out/osde2e test --custom-config custom_config.yaml --must-gather=false --skip-health-check
2021/04/06 12:47:41 load.go:57: Custom YAML config provided, loading from custom_config.yaml
2021/04/06 12:47:41 e2e.go:256: Writing files to temporary directory /tmp/931414409
2021/04/06 12:47:41 e2e.go:302: Outputting log to build log at /tmp/931414409/test_output.log
2021/04/06 12:47:41 versions.go:34: Querying cluster versions endpoint.
2021/04/06 12:47:42 versions.go:72: could not parse version 'aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbb-imageset': Invalid Semantic Version
2021/04/06 12:47:42 versions.go:72: could not parse version 'aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbb-imageset': Invalid Semantic Version
2021/04/06 12:47:42 versions.go:72: could not parse version 'dgoodwin1-imageset': Invalid Semantic Version
2021/04/06 12:47:42 versions.go:72: could not parse version 'dgoodwin-stg-imageset': Invalid Semantic Version
2021/04/06 12:47:42 versions.go:34: Querying cluster versions endpoint.
2021/04/06 12:47:43 version.go:104: Using the user supplied version '4.7.3'
2021/04/06 12:47:43 version.go:132: No upgrade selector found. Not selecting an upgrade version.
2021/04/06 12:47:43 e2e.go:349: Running e2e tests...
2021/04/06 12:47:43 flavour.go:27: Using flavour: osd-4
2021/04/06 12:47:43 quota.go:67: Quota for test config (cluster.aws//multiAZ=false) found: total=41, remaining: 41
2021/04/06 12:47:47 events.go:30: Success event: InstallSuccessful
2021/04/06 12:47:47 e2e.go:98: CLUSTER_ID set to 1jsusjtt2n4rsup239hntiu07hh2t73n from OCM.
2021/04/06 12:47:47 e2e.go:101: CLUSTER_NAME set to mrnd-tst from OCM.
2021/04/06 12:47:47 e2e.go:104: CLUSTER_VERSION set to openshift-v4.7.3 from OCM.
2021/04/06 12:47:47 e2e.go:107: CLOUD_PROVIDER_ID set to aws from OCM.
2021/04/06 12:47:47 e2e.go:110: CLOUD_PROVIDER_REGION set to us-west-2 from OCM.
2021/04/06 12:47:47 e2e.go:113: Found addons: 
2021/04/06 12:47:47 cluster.go:946: # TYPE cicd_cluster_properties gauge
cicd_cluster_properties{cluster_id="1jsusjtt2n4rsup239hntiu07hh2t73n",environment="stage",job_id="-1",property="UpgradeVersion",region="us-west-2",value="",version="openshift-v4.7.3"} 0
2021/04/06 12:47:47 s3.go:68: Uploaded to s3://osde2e-metrics/incoming/1jsusjtt2n4rsup239hntiu07hh2t73n.osde2e-cluster-property-update.metrics.prom
2021/04/06 12:47:48 cluster.go:980: Successfully added property[UpgradeVersion] -  
2021/04/06 12:47:48 Waiting 135 minutes for cluster '1jsusjtt2n4rsup239hntiu07hh2t73n' to be ready...
2021/04/06 12:47:48 events.go:30: Success event: HealthCheckSuccessful
2021/04/06 12:47:48 e2e.go:158: OSD cluster installed. Sleeping for 600s.
2021/04/06 12:57:49 addon_test_harness.go:22: addon timeout is 30
Running Suite: OSD e2e suite
============================
Random Seed: 1617706061
Will run 212 of 212 specs
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
JUnit report was created: /tmp/931414409/install/junit_6ihf5.xml
Ran 0 of 212 Specs in 0.107 seconds
SUCCESS! -- 0 Passed | 0 Failed | 0 Pending | 212 Skipped
2021/04/06 12:57:49 e2e.go:726: Pass rate is NaN: numPassingTests = 0, numTests = 0
2021/04/06 12:57:50 e2e.go:416: Skipping metrics upload for local osde2e run.
2021/04/06 12:57:50 e2e.go:435: For debugging, please look for cluster ID 1jsusjtt2n4rsup239hntiu07hh2t73n in environment stage
2021/04/06 12:57:51 e2e.go:223: Tests failed: Unable to generate helper object for cleanup
testing failed

Issue with login

I am having issues running tests with a newly created redhat developer account.

I can use my developer credentials to get the UHC token via

uhc login --user=... --password=...

then i can get token via

uhc token

I also have a newly created AMZ web services account. And created a key for a user with Admin rights.

Setting these 3 env params but it's not letting me create the cluster.

UHC_TOKEN: The token used to authenticate with the OSD environment.
AWS_ACCESS_KEY_ID: AWS key ID used by OSD to install clusters.
AWS_SECRET_ACCESS_KEY: AWS access key used by OSD to install clusters.

2019/06/06 21:23:18 Creating cluster 'ci-cluster-1-hbzb6'...
Failure [0.001 seconds]
[BeforeSuite] BeforeSuite
/home/ubuntu/go/src/github.com/openshift/osde2e/setup.go:25

failed to setup cluster for testing
Unexpected error:
<*errors.errorString | 0xc00035eea0>: {
s: "could not launch cluster: couldn't create cluster: can't get access token: either user name and password or client identifier and secret must be provided",
}
could not launch cluster: couldn't create cluster: can't get access token: either user name and password or client identifier and secret must be provided
occurred

/home/ubuntu/go/src/github.com/openshift/osde2e/setup.go:30

2019/06/06 21:23:18 CLUSTER_ID is not set, likely due to a setup failure. Skipping AfterSuite...

Turned on OSD debug and see:

019/06/08 09:28:56 OpenID token URL wasn't provided, will use 'https://developers.redhat.com/auth/realms/rhd/protocol/openid-connect/token'
2019/06/08 09:28:56 OpenID client identifier wasn't provided, will use 'uhc'
2019/06/08 09:28:56 OpenID client secret wasn't provided, will use ''
2019/06/08 09:28:56 Bearer token expires in 3m53.218356161s
2019/06/08 09:28:56 Refresh token isn't available
2019/06/08 09:28:56 Request method is GET
2019/06/08 09:28:56 Request URL is 'https://api.stage.openshift.com/api/clusters_mgmt/v1/versions'
2019/06/08 09:28:56 Request header 'Accept' is 'application/json'
2019/06/08 09:28:56 Request header 'Authorization' is omitted
2019/06/08 09:28:56 Request header 'User-Agent' is 'UHC/0.1.14'
2019/06/08 09:28:57 Response status is '401 Unauthorized'
2019/06/08 09:28:57 Response status code 401
2019/06/08 09:28:57 Response header 'Content-Length' is '131'
2019/06/08 09:28:57 Response header 'Content-Type' is 'application/json'
2019/06/08 09:28:57 Response header 'Date' is 'Sat, 08 Jun 2019 13:28:56 GMT'
2019/06/08 09:28:57 Response header 'Server' is 'Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips'
2019/06/08 09:28:57 Response header 'Set-Cookie' is 'e5ba9b5d94759f62ffa2852bda2cfc72=d6f088d5eaef8696973590d38782301e; path=/; HttpOnly; Secure'
2019/06/08 09:28:57 Response body follows
2019/06/08 09:28:57 {
"code": "GATEWAY-401",
"href": "/api/gateway/v1/errors/401",
"id": "401",
"kind": "Error",
"reason": "Access to resource isn't authorized"
}

I guess the basic redhat developer access is not enough to run this?

UPDATE: I see something in the uhc-cli docs about having a domain registered with Route53 - in process of registering and will try again.

-john

Add logging tests

This test needs to:

  • Install the Logging operator
  • Run logging load tests /cc @mffiedler
  • Upgrade (if test is in the upgrade pipeline)
  • Post-upgrade health checks?

WIP: Run openshift/all tests nightly

This test should report back clean:

./openshift-tests run all --dry-run --loglevel=10 --include-success --junit-dir=/tmp/junit

This test needs to run as cluster-admin:

uhc get /api/clusters_mgmt/v1/clusters/1...<blah>/credentials | jq -r .kubeconfig

make check fails on Mac OS

Run from a Macbook make check and it will fail with the following error message:

find "/Users/drpaneas/gocode/src/github.com/openshift/osde2e/scripts" -name "*.sh" -exec /Users/drpaneas/gocode/src/github.com/openshift/osde2e/scripts/shellcheck.sh {} +
x shellcheck-stable/README.txt
x shellcheck-stable/LICENSE.txt
x shellcheck-stable/shellcheck
/Users/drpaneas/gocode/src/github.com/openshift/osde2e/scripts/shellcheck.sh: line 9: /Users/drpaneas/gocode/src/github.com/openshift/osde2e/scripts/shellcheck-stable/shellcheck: cannot execute binary file
make: *** [check] Error 126

The problem is that it doesn't check the underlying OS or the architecture, but fetches always the Linux and 64-bit tarball.

collect cluster state for every run

To assist in debugging failed tests, as well as to know how a cluster was configured for a specific test run, we need to collect additional information from the cluster.

Please evaluate and integrate as much of this as possible into osde2e:

I looked into what origin is doing:

https://github.com/openshift/release/blob/80af9fee7a9f63a79e01da0c74d9dd323118daf0/ci-operator/templates/openshift/installer/cluster-launch-installer-e2e.yaml#L666

It runs a bunch of commands, and also runs the must-gather tool, which is meant to define what gets collected for debugging openshift clusters:

https://github.com/openshift/must-gather/

Create event-driven test job

Right now we run nightly (soon to be every 4 hours). Please create a new test that watches CIS in staging and runs asap (checking UHC stage every 15 minutes is fine)

Ensure osde2e always uses the "default" ClusterImageSet

The JJB jobs specify version: "4.1" but this means we're not testing the default CIS. More importantly we're not moving past 4.1.0 (all runs are on this version now in both stage and prod).

  • The latest CIS is 4.1.2 and is the default CIS in prod.
  • Interestingly, there are two CIS labeled as default=true in stage. See the conversation in Slack for more info on that.

Please update osde2e pipelines deploy whatever is labeled as the default CIS:
api.openshift.com/default=true

Please also account for how this might break testgrid or other places where {version} or CLUSTER_VERSION is used.

Add check for existence of Ginkgo Focus flags

Gingko supports focused specs by using FDescribe, FContext, FIt in place of the standard Describe, Context and It functions: https://onsi.github.io/ginkgo/#focused-specs

The same is true of "P" or "X" to mark Pending Specs, but there's a valid reason to allow inclusion of the Pending flags.

This is helpful for local development, but if committed to the CI pipeline accidentally, it cause the pipeline to skip all unfocused specs.

It would be helpful to have an automated test be added that checks for focused specs in PRs? A grep would probably be enough, or running ginkgo unfocus on a clone of the PR and checking for changed files would work.

Pods should be Running or Succeeded test should account for image pull time

Thanks for adding code to print the pods that fail this test.

In https://prow.k8s.io/view/gcs/redhat-openshift-osd-e2e/logs/release-openshift-osd-e2e-4.0/94 the test may have flaked(?) due to the pods not being started when the test ran? The three pods that failed this test happen to be ones whose image needs to be pulled to a worker node (IOW they rely on network/registry pull).

This test should be a bit more flexible; perhaps retry every minute for max of 10 minutes before failing?

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.