def _fix_yaml(self): # Replacements are to point container paths and/or versions to the # expected ones to test. if converter('@bool', settings.SES.BUILD_ROOK_FROM_GIT): # Replace image reference if we built it in this run with open(os.path.join(self.ceph_dir, 'operator.yaml')) as file: docs = yaml.load_all(file, Loader=yaml.FullLoader) for doc in docs: try: image = doc['spec']['template']['spec'][ 'containers'][0]['image'] break except KeyError: pass logger.info("replacing %s by %s", image, self.rook_image) replacements = {image: self.rook_image} recursive_replace(self.ceph_dir, replacements) with open(os.path.join(self.ceph_dir, 'cluster.yaml')) as file: docs = yaml.load_all(file, Loader=yaml.FullLoader) for doc in docs: try: image = doc['spec']['cephVersion']['image'] break except KeyError: pass logger.info("replacing %s by %s", image, settings( f"SES.{settings.SES.TARGET}.ceph_image")) replacements = {image: settings( f"SES.{settings.SES.TARGET}.ceph_image")} recursive_replace(self.ceph_dir, replacements) else: replacements = settings( f'SES.{settings.SES.TARGET}.yaml_substitutions') recursive_replace(self.ceph_dir, replacements)
def __init__(self, workspace, kubernetes): super().__init__(workspace, kubernetes) self.ceph_dir = os.path.join(self.workspace.working_dir, 'rook/ceph') self.helm_dir = os.path.join(self.workspace.working_dir, 'helm/rook-ceph') self.rook_chart = settings( f"SES.{settings.SES.TARGET}.rook_ceph_chart")
def preinstall(self): super().preinstall() repo_vars = { 'ses_repositories': settings(f'SES.{settings.SES.TARGET}.repositories') } self.kubernetes.hardware.ansible_run_playbook('playbook_rook_ses.yaml', extra_vars=repo_vars) self._get_rook() self._fix_yaml()
def preinstall(self): super().preinstall() if converter('@bool', settings.SES.BUILD_ROOK_FROM_GIT): self.upload_rook_image() repo_vars = { 'ses_repositories': settings(f'SES.{settings.SES.TARGET}.repositories') } self.kubernetes.hardware.ansible_run_playbook( 'playbook_rook_ses.yaml', extra_vars=repo_vars) self._get_rook_yaml() self._fix_yaml()
def _fix_yaml(self): # Replacements are to point container paths and/or versions to the # expected ones to test. replacements = settings( f'SES.{settings.SES.TARGET}.yaml_substitutions') recursive_replace(self.ceph_dir, replacements)
def _print_config(): logger.info("#" * 120) logger.info("# Rookcheck Settings:") logger.info("# ===================") logger.info(f"# ROOKCHECK_CLUSTER_PREFIX={settings.CLUSTER_PREFIX}") logger.info(f"# ROOKCHECK_WORKSPACE_DIR={settings.WORKSPACE_DIR}") logger.info(f"# ROOKCHECK_NUMBER_MASTERS={settings.NUMBER_MASTERS}") logger.info(f"# ROOKCHECK_NUMBER_WORKERS={settings.NUMBER_WORKERS}") logger.info(f"# ROOKCHECK_WORKER_INITIAL_DATA_DISKS=" f"{settings.WORKER_INITIAL_DATA_DISKS}") logger.info(f"# ROOKCHECK_NODE_IMAGE_USER={settings.NODE_IMAGE_USER}") logger.info(f"# ROOKCHECK__USE_THREADS={settings._USE_THREADS}") logger.info(f"# ROOKCHECK__REMOVE_WORKSPACE={settings._REMOVE_WORKSPACE}") logger.info( f"# ROOKCHECK__TEAR_DOWN_CLUSTER={settings._TEAR_DOWN_CLUSTER}") logger.info(f"# ROOKCHECK__TEAR_DOWN_CLUSTER_CONFIRM=" f"{settings._TEAR_DOWN_CLUSTER_CONFIRM}") logger.info(f"# ROOKCHECK__GATHER_LOGS_DIR={settings._GATHER_LOGS_DIR}") logger.info(f"# ROOKCHECK_HARDWARE_PROVIDER={settings.HARDWARE_PROVIDER}") logger.info("# Hardware provider specific config:") logger.info("# ----------------------------------") if settings.HARDWARE_PROVIDER.upper() == "OPENSTACK": logger.info(f"# ROOKCHECK_OPENSTACK__NODE_IMAGE=" f"{settings.OPENSTACK.NODE_IMAGE}") logger.info(f"# ROOKCHECK_OPENSTACK__NODE_SIZE=" f"{settings.OPENSTACK.NODE_SIZE}") logger.info(f"# ROOKCHECK_OPENSTACK__EXTERNAL_NETWORK=" f"{settings.OPENSTACK.EXTERNAL_NETWORK}") elif settings.HARDWARE_PROVIDER.upper() == "LIBVIRT": logger.info(f"# ROOKCHECK_LIBVIRT__CONNECTION=" f"{settings.LIBVIRT.CONNECTION}") logger.info(f"# ROOKCHECK_LIBVIRT__NETWORK_RANGE=" f"{settings.LIBVIRT.NETWORK_RANGE}") logger.info(f"# ROOKCHECK_LIBVIRT__NETWORK_SUBNET=" f"{settings.LIBVIRT.NETWORK_SUBNET}") logger.info(f"# ROOKCHECK_LIBVIRT__IMAGE={settings.LIBVIRT.IMAGE}") logger.info( f"# ROOKCHECK_LIBVIRT__VM_MEMORY={settings.LIBVIRT.VM_MEMORY}") elif settings.HARDWARE_PROVIDER.upper() == "AWS_EC2": logger.info( f"# ROOKCHECK_AWS.AMI_IMAGE_ID={settings.AWS.AMI_IMAGE_ID}") logger.info(f"# ROOKCHECK_AWS.NODE_SIZE={settings.AWS.NODE_SIZE}") logger.info(f"# ROOKCHECK_DISTRO={settings.DISTRO}") logger.info("# Distro specific config:") logger.info("# -----------------------") if settings.DISTRO == 'SLES_CaaSP': logger.info(f"# ROOKCHECK_SES__TARGET={settings.SES.TARGET}") logger.info('# SES Repositories:') for repo, url in settings( f'SES.{settings.SES.TARGET}.repositories').items(): logger.info(f'# - {repo} : {url}') logger.info('# YAML Replacements:') for key, value in settings( f'SES.{settings.SES.TARGET}.yaml_substitutions').items(): logger.info(f'# - {key} = {value}') elif settings.DISTRO == 'openSUSE_k8s': logger.info(f"# ROOKCHECK_UPSTREAM_ROOK__BUILD_ROOK_FROM_GIT=" f"{settings.UPSTREAM_ROOK.BUILD_ROOK_FROM_GIT}") logger.info("#") logger.info("# Environment Variables:") logger.info("# ======================") for name, value in sorted(os.environ.items()): logger.info(f"# {name}={value}") logger.info("#" * 120)
def _fix_chart_values(self): # Replacements are to point container paths and/or versions to the # expected ones to test. replacements = settings( f'SES.{settings.SES.TARGET}.helm_values_substitutions') recursive_replace(self.helm_dir, replacements)