in blueprints/third-party-solutions/openshift/prepare.py [0:0]
def manifests_edit(ctx=None):
'Edit generated manifests.'
logging.info('edit manifests')
dir_ = ctx.obj['paths']['config_dir'] / 'openshift'
for fileobj in dir_.glob('99_openshift-cluster-api_master-machines-*.yaml'):
logging.info(f'removing {fileobj.name}')
fileobj.unlink()
tfvars = ctx.obj['tfvars']
for fileobj in dir_.glob('99_openshift-cluster-api_worker-machineset-*.yaml'):
logging.info(f'editing {fileobj.name}')
y = yaml.YAML()
try:
with fileobj.open() as f:
data = y.load(f)
data_v = data['spec']['template']['spec']['providerSpec']['value']
data_v['region'] = tfvars['region']
data_v['projectID'] = tfvars['service_project']['project_id']
if not 'ocp-worker' in data_v['tags']:
data_v['tags'].append('ocp-worker')
if tfvars['install_config_params']['labels']:
data_v['labels'] = tfvars['install_config_params']['labels'].copy()
for i, d in enumerate(data_v['disks']):
d['labels'] = tfvars['install_config_params']['labels'].copy()
data_n = data_v['networkInterfaces'][0]
data_n['network'] = tfvars['host_project']['vpc_name']
data_n['subnetwork'] = tfvars['host_project']['workers_subnet_name']
data_n.insert(len(data_n), 'projectID',
tfvars['host_project']['project_id'])
with fileobj.open('w') as f:
y.dump(data, f)
except (IOError, OSError, yaml.YAMLError) as e:
raise Error(f'error editing file {fileobj}: {e}')
dir_ = ctx.obj['paths']['config_dir'] / 'manifests'
fileobj = dir_ / 'cloud-provider-config.yaml'
vars_h = tfvars["host_project"]
logging.info(f'editing {fileobj.name}')
try:
with fileobj.open() as f:
data = y.load(f)
config = [
l for l in data['data']['config'].strip().split('\n')
if 'network-' not in l.rpartition('=')[0]
]
config += [
f'network-project-id = {vars_h["project_id"]}',
f'network-name = {vars_h["vpc_name"]}',
f'subnetwork-name = {vars_h["default_subnet_name"]}',
]
data['data']['config'] = '\n'.join(config)
with fileobj.open('w') as f:
y.dump(data, f)
except (IOError, OSError, yaml.YAMLError) as e:
raise Error(f'error editing file {fileobj}: {e}')
fileobj = dir_ / 'cluster-scheduler-02-config.yml'
logging.info(f'editing {fileobj.name}')
try:
with fileobj.open() as f:
data = y.load(f)
data['spec']['mastersSchedulable'] = False
with fileobj.open('w') as f:
y.dump(data, f)
except (IOError, OSError, yaml.YAMLError) as e:
raise Error(f'error editing file {fileobj}: {e}')