def test_registry_by_increasing_num_of_registry_pods(self, count=3): """ Test registry by increasing number of registry pods and validate all the image-registry pod should have the same PVC backend. """ # Increase the replica count to 3 assert modify_registry_pod_count( count ), "Number of registry pod doesn't match the count" # Validate image registry pods validate_registry_pod_status() # Validate pvc mounted on image registry pod validate_pvc_mount_on_registry_pod() # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push( project_name=self.project_name, template="eap-cd-basic-s2i", image="registry.redhat.io/jboss-eap-7-tech-preview/eap-cd-openshift-rhel8:latest", pattern="eap-app", ) # Validate image exists in registries path validate_image_exists(namespace=self.project_name) # Reduce number to 2 assert modify_registry_pod_count(count=2) # Validate image registry pods validate_registry_pod_status()
def test_registry_respin_pod(self, pod_name): """ Test registry workload when backed by OCS respin of ceph pods """ # Respin relevant pod log.info(f"Respin Ceph pod {pod_name}") disruption = disruption_helpers.Disruptions() disruption.set_resource(resource=f'{pod_name}') disruption.delete_resource() # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push( project_name=self.project_name, template='eap-cd-basic-s2i', image= 'registry.redhat.io/jboss-eap-7-tech-preview/eap-cd-openshift-rhel8:latest', pattern='eap-app') # Validate image exists in registries path validate_image_exists(namespace=self.project_name) # Validate image registry pods validate_registry_pod_status() # Validate cluster health ok and all pods are running self.sanity_helpers.health_check()
def test_registry_by_increasing_num_of_registry_pods(self, count=3): """ Test registry by increasing number of registry pods and validate all the image-registry pod should have the same PVC backend. """ # Increase the replica count to 3 assert modify_registry_pod_count( count), "Number of registry pod doesn't match the count" # Validate image registry pods validate_registry_pod_status() # Validate pvc mounted on image registry pod validate_pvc_mount_on_registry_pod() # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push(project_name=self.project_name) # Validate image exists in registries path validate_image_exists() # Reduce number to 2 assert modify_registry_pod_count(count=2) # Validate image registry pods validate_registry_pod_status()
def test_registry_rolling_reboot_node(self, node_type, nodes): """ Test registry workload when backed by OCS and reboot node one by one """ # Get the node list node_list = get_nodes(node_type) # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push(project_name=self.project_name) # Validate image exists in registries path validate_image_exists() for node in node_list: # Reboot node log.info(node.name) nodes.restart_nodes([node], wait=False) # Wait some time after rebooting node waiting_time = 40 log.info(f"Waiting {waiting_time} seconds...") time.sleep(waiting_time) # Validate all nodes and services are in READY state and up retry( ( CommandFailed, TimeoutError, AssertionError, ResourceWrongStatusException, ), tries=60, delay=15, )(wait_for_cluster_connectivity)(tries=400) retry( ( CommandFailed, TimeoutError, AssertionError, ResourceWrongStatusException, ), tries=60, delay=15, )(wait_for_nodes_status)(timeout=900) # Validate cluster health ok and all pods are running self.sanity_helpers.health_check(tries=40) # Validate storage pods are running wait_for_storage_pods() # Validate image registry pods validate_registry_pod_status() # Validate image exists in registries path validate_image_exists()
def test_registry_shutdown_and_recovery_node(self, nodes): """ Test registry workload when backed by OCS and its impact when node is shutdown and recovered """ # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push( project_name=self.project_name, template="eap-cd-basic-s2i", image= "registry.redhat.io/jboss-eap-7-tech-preview/eap-cd-openshift-rhel8:latest", pattern="eap-app", ) # Get the node list node_list = get_nodes(node_type="worker") for node in node_list: # Stop node nodes.stop_nodes(nodes=[node]) # Validate node reached NotReady state wait_for_nodes_status(node_names=[node.name], status=constants.NODE_NOT_READY) # Start node nodes.start_nodes(nodes=[node]) # Validate all nodes are in READY state and up retry( ( CommandFailed, TimeoutError, AssertionError, ResourceWrongStatusException, ), tries=60, delay=15, )(wait_for_nodes_status)(timeout=900) # Validate all storage pods are running wait_for_storage_pods() # Validate cluster health ok and all pods are running self.sanity_helpers.health_check(tries=40) # Validate image registry pods validate_registry_pod_status() # Validate image exists in registries path validate_image_exists(namespace=self.project_name)
def test_registry_reboot_node(self, node_type, nodes): """ Test registry workload when backed by OCS and reboot node """ # Get the node list node = get_nodes(node_type, num_of_nodes=1) # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push( project_name=self.project_name, template="eap-cd-basic-s2i", image= "registry.redhat.io/jboss-eap-7-tech-preview/eap-cd-openshift-rhel8:latest", pattern="eap-app", ) # Validate image exists in registries path validate_image_exists(namespace=self.project_name) # Reboot one node nodes.restart_nodes(node, wait=False) # Validate all nodes and services are in READY state and up retry( (CommandFailed, TimeoutError, AssertionError, ResourceWrongStatusException), tries=60, delay=15, )(wait_for_cluster_connectivity)(tries=400) retry( (CommandFailed, TimeoutError, AssertionError, ResourceWrongStatusException), tries=60, delay=15, )(wait_for_nodes_status)(timeout=900) # Validate cluster health ok and all pods are running self.sanity_helpers.health_check(tries=40) # Validate storage pods are running wait_for_storage_pods() # Validate image registry pods validate_registry_pod_status() # Validate image exists in registries path validate_image_exists(namespace=self.project_name)
def test_registry_pull_and_push_images(self): """ Test case to pull and push images to registry backed by OCS """ # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push(project_name=self.project_name) # Validate image exists in registries path validate_image_exists() # Validate image registry pods validate_registry_pod_status()
def test_registry_pull_and_push_images(self): """ Test case to pull and push images to registry backed by OCS """ # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push( project_name=self.project_name, template='eap-cd-basic-s2i', image= 'registry.redhat.io/jboss-eap-7-tech-preview/eap-cd-openshift-rhel8:latest', pattern='eap-app') # Validate image exists in registries path validate_image_exists(namespace=self.project_name) # Validate image registry pods validate_registry_pod_status()
def test_registry_respin_pod(self, pod_name): """ Test registry workload when backed by OCS respin of ceph pods """ # Respin relevant pod log.info(f"Respin Ceph pod {pod_name}") disruption = disruption_helpers.Disruptions() disruption.set_resource(resource=f"{pod_name}") disruption.delete_resource() # Pull and push images to registries log.info("Pull and push images to registries") image_pull_and_push(project_name=self.project_name) # Validate image exists in registries path validate_image_exists() # Validate image registry pods validate_registry_pod_status() # Validate cluster health ok and all pods are running self.sanity_helpers.health_check(tries=40)