Skip to content

Create e2e test to emulate deployment use cases for MCAD #399

Closed
@z103cb

Description

@z103cb

Description

We need the to ensure that MCAD functions correctly in the following deployment scenarios which are most likely encountered when upgrading / deploying a new version of MCAD with the quota management feature enabled. It is assumed that the changes in #396, are incorporated and that the "default" quota node is available.

To achieve the goals, we'll need to augment our kuttl end to end tests to support the following scenarios. It is assumed that the same kind configuration / cluster setup as the existing end to end tests is used. The scenarios below assume that the kind cluster is up and running.

Deployment Scenarios

Deploy in cluster with running app wrappers where quota management was not previously deployed

Purpose

To validate that we can deploy MCAD with quota management feature turned on a cluster where there are app wrappers in a RUNNING, COMPLETED, RUNNING HOLD COMPLETION state which did not specify quota labels. Once the MCAD is re-deployed in with quota management feature enabled, it is expected that existing app wrappers in RUNNING and RUNNING HOLD COMPLETION state without any quota management labels will use the quota from the "default" quota node.

Steps

  1. Deploy MCAD on cluster with quota management turned off
  2. Submit 1 app wrapper with a deployment running echo server to emulate long running AppWrappers with the expectation that the existing app wrappers and associated resources will continue to run. Expect that the submitted app wrapper will be in a "RUNNING" state.
  3. Submit 1 app wrapper with one job that is expected to run for a limited time. Expect that the submitted app wrapper will be in a "COMPLETED" state.
  4. Submit 1 app wrapper that would end up in a "RUNNING HOLD COMPLETION"
  5. Redeploy MCAD on cluster with quota management turned on, and no quota trees submitted with the expectation that the existing app wrappers and associated resources will continue to run and MCAD continues to function.
  6. Submit quota trees with a "default" node and additional quota nodes with the expectation that the existing app wrappers are associated with the "default" quota node and MCAD continues to function.
  7. Submit a new app wrapper with enough resource request to use up the remainder of the quota allocation for the "default" node. Expect the app wrapper to be in a "Pending" state.
  8. Delete app wrappers submitted in step 2 and 3 expect that the app wrapper in the previous step will be in a RUNNING state.
  9. Submit additional app wrappers consuming quota nodes other than default with the expectation that they would be in a "RUNNING" or "COMPLETE" state.

Deploy in cluster with running app wrappers where quota management was previously deployed

Purpose

To validate that we can deploy and re deploy MCAD with quota management feature turned on a cluster where there are app wrappers in a RUNNING, COMPLETED, RUNNING HOLD COMPLETION with specific quota labels. Once the MCAD is re-deployed in with quota management feature enabled, it is expected that existing app wrappers in RUNNING and RUNNING HOLD COMPLETION state would use up the quota from their respective nodes.

Steps:

  1. Deploy CRDS in the cluster
  2. Deploy quota trees in the cluster, with a "default" node.
  3. Deploy MCAD on cluster with quota management feature flag turned on.
  4. Submit additional app wrappers consuming quota nodes other than default with the expectation that they would be in a "RUNNING" and "COMPLETED" state.
  5. Submit additional app wrappers with no quota nodes specified. Expect that the app wrappers would be in a "Running" and "Completed" state and they would use up the "default" node quota.
  6. Redeploy MCAD on cluster with quota management turned on or kill the MCAD pod
  7. Submit a new app wrapper with enough resource request to use up the remainder of the quota allocation for the "default" node. Expect the app wrapper to be in a "Pending" state.
  8. Submit a new app wrapper with enough resource request to use up the remainder of the quota allocation for a node other than default. Expect the app wrapper to be in a "Pending" state.

Note: This scenario should be probably incorporated into the existing quota management e2e test.

Update quota trees in a running cluster

Purpose

To validate that updates to the quota trees can be processed while MCAD is running and there are no disruption in processing for existing app wrappers and new app wrappers can be submitted.

Steps

  1. Deploy CRDS in the cluster
  2. Deploy quota trees in the cluster, with a "default" node.
  3. Deploy MCAD on cluster with quota management feature flag turned on.
  4. Submit additional app wrappers consuming quota nodes other than default with the expectation that they would be in a "RUNNING" or "COMPLETED" state.
  5. Submit additional app wrappers with no quota nodes specified with the expectation that they would be in a "Running" and "Completed" state.
  6. Submit CRD that adds a new quota node to the tree defined in step 2. Expect that the existing app wrappers will continue to execute and MCAD is still functional.
  7. Submit additional app wrappers for the quota node defined in step 6 with the expectation that they would be in a "RUNNING" or "COMPLETED" state.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions