multi-rhel images prepare default
New arguments: --enable-multi-rhel : flag to create multi-rhel prepare --excludes: list of containers to include/exclude --minor-override: tags to override on the minor release --major-override: tags to override on the mayor release --role: list of the roles --role-file: role_data.yaml patch Example: [stack@standalone ~]$ openstack tripleo container image prepare default \ --enable-multi-rhel --excludes nova-compute \ --excludes nova-libvirt --excludes ovn-controller \ --major-override "{'tag':'other_tag'}" \ --minor-override "{'tag':'my_tag'}" --role ComputeEL8 parameter_defaults: ComputeEL8ContainerImagePrepare: - excludes: - nova-compute - nova-libvirt - ovn-controller set: ceph_alertmanager_image: alertmanager ceph_alertmanager_namespace: quay.io/prometheus ceph_alertmanager_tag: v0.23.0 ceph_grafana_image: ceph-grafana ceph_grafana_namespace: quay.io/ceph ceph_grafana_tag: 6.7.4 ceph_haproxy_image: haproxy ceph_haproxy_namespace: quay.io/ceph ceph_haproxy_tag: 2.3 ceph_image: daemon ceph_keepalived_image: keepalived ceph_keepalived_namespace: quay.io/ceph ceph_keepalived_tag: 2.1.5 ceph_namespace: quay.rdoproject.org/tripleomastercentos9 ceph_node_exporter_image: node-exporter ceph_node_exporter_namespace: quay.io/prometheus ceph_node_exporter_tag: v1.3.1 ceph_prometheus_image: prometheus ceph_prometheus_namespace: quay.io/prometheus ceph_prometheus_tag: v2.33.4 ceph_tag: current-ceph name_prefix: openstack- name_suffix: '' namespace: quay.io/tripleomastercentos9 neutron_driver: ovn pushgateway_image: pushgateway pushgateway_namespace: quay.io/prometheus pushgateway_tag: v1.4.2 rhel_containers: false tag: other_tag tag_from_label: rdo_version - includes: - nova-compute - nova-libvirt - ovn-controller set: ceph_alertmanager_image: alertmanager ceph_alertmanager_namespace: quay.io/prometheus ceph_alertmanager_tag: v0.23.0 ceph_grafana_image: ceph-grafana ceph_grafana_namespace: quay.io/ceph ceph_grafana_tag: 6.7.4 ceph_haproxy_image: haproxy ceph_haproxy_namespace: quay.io/ceph ceph_haproxy_tag: 2.3 ceph_image: daemon ceph_keepalived_image: keepalived ceph_keepalived_namespace: quay.io/ceph ceph_keepalived_tag: 2.1.5 ceph_namespace: quay.rdoproject.org/tripleomastercentos9 ceph_node_exporter_image: node-exporter ceph_node_exporter_namespace: quay.io/prometheus ceph_node_exporter_tag: v1.3.1 ceph_prometheus_image: prometheus ceph_prometheus_namespace: quay.io/prometheus ceph_prometheus_tag: v2.33.4 ceph_tag: current-ceph name_prefix: openstack- name_suffix: '' namespace: quay.io/tripleomastercentos9 neutron_driver: ovn pushgateway_image: pushgateway pushgateway_namespace: quay.io/prometheus pushgateway_tag: v1.4.2 rhel_containers: false tag: my_tag tag_from_label: rdo_version ContainerImagePrepare: - set: ceph_alertmanager_image: alertmanager ceph_alertmanager_namespace: quay.io/prometheus ceph_alertmanager_tag: v0.23.0 ceph_grafana_image: ceph-grafana ceph_grafana_namespace: quay.io/ceph ceph_grafana_tag: 6.7.4 ceph_haproxy_image: haproxy ceph_haproxy_namespace: quay.io/ceph ceph_haproxy_tag: 2.3 ceph_image: daemon ceph_keepalived_image: keepalived ceph_keepalived_namespace: quay.io/ceph ceph_keepalived_tag: 2.1.5 ceph_namespace: quay.rdoproject.org/tripleomastercentos9 ceph_node_exporter_image: node-exporter ceph_node_exporter_namespace: quay.io/prometheus ceph_node_exporter_tag: v1.3.1 ceph_prometheus_image: prometheus ceph_prometheus_namespace: quay.io/prometheus ceph_prometheus_tag: v2.33.4 ceph_tag: current-ceph name_prefix: openstack- name_suffix: '' namespace: quay.io/tripleomastercentos9 neutron_driver: ovn pushgateway_image: pushgateway pushgateway_namespace: quay.io/prometheus pushgateway_tag: v1.4.2 rhel_containers: false tag: other_tag tag_from_label: rdo_version Change-Id: Ib834234c57ff525bb2f7a4993534515091a7138a
This commit is contained in:
parent
21d95d299f
commit
37a6982605
|
@ -46,7 +46,8 @@ def build_env_file(params, command_options):
|
|||
' '.join(command_options))
|
||||
|
||||
yaml.safe_dump({'parameter_defaults': params}, f,
|
||||
default_flow_style=False)
|
||||
default_flow_style=False,
|
||||
sort_keys=False)
|
||||
return f.getvalue()
|
||||
|
||||
|
||||
|
@ -444,6 +445,48 @@ class TripleOImagePrepareDefault(command.Command):
|
|||
'registries. Do not use this for an overcloud that '
|
||||
'may not have network connectivity to a remote registry.')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--enable-multi-rhel',
|
||||
dest='multi_rhel',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help=_('Use this flag to enable multi-rhel')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--excludes',
|
||||
dest='excludes',
|
||||
action='append',
|
||||
default=[],
|
||||
help=_('List of services to include/exclude')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--major-override',
|
||||
dest='major',
|
||||
action='store',
|
||||
default='{}',
|
||||
help=_('The override parameters for major release')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--minor-override',
|
||||
dest='minor',
|
||||
action='store',
|
||||
default='{}',
|
||||
help=_('The override parameters for minor release')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--role',
|
||||
dest='roles',
|
||||
action='append',
|
||||
default=[],
|
||||
help=_('List of roles')
|
||||
)
|
||||
parser.add_argument(
|
||||
'--role-file',
|
||||
dest='rolefile',
|
||||
action='store',
|
||||
default='',
|
||||
help=_('role_data.yaml file')
|
||||
)
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
|
@ -467,7 +510,48 @@ class TripleOImagePrepareDefault(command.Command):
|
|||
' with ContainerImageRegistryCredentials for the '
|
||||
'registries requiring authentication.')
|
||||
params['ContainerImageRegistryLogin'] = True
|
||||
|
||||
if parsed_args.multi_rhel:
|
||||
cip_exc = copy.deepcopy(cip)
|
||||
cip_inc = copy.deepcopy(cip)
|
||||
if parsed_args.major is not None:
|
||||
major = yaml.safe_load(parsed_args.major)
|
||||
if len(parsed_args.excludes) > 0:
|
||||
cip_exc[0]['excludes'] = copy.deepcopy(parsed_args.excludes)
|
||||
cip_inc[0]['includes'] = copy.deepcopy(parsed_args.excludes)
|
||||
if parsed_args.minor is not None:
|
||||
minor = yaml.safe_load(parsed_args.minor)
|
||||
for key in minor.keys():
|
||||
if key in cip_inc[0]['set'].keys():
|
||||
cip_inc[0]['set'][key] = minor[key]
|
||||
if parsed_args.major is not None:
|
||||
major = yaml.safe_load(parsed_args.major)
|
||||
for key in major.keys():
|
||||
if key in cip_exc[0]['set'].keys():
|
||||
cip_exc[0]['set'][key] = major[key]
|
||||
params_set = params['ContainerImagePrepare'][0]['set']
|
||||
if key in params_set.keys():
|
||||
params_set[key] = major[key]
|
||||
base_role = [cip_exc[0], cip_inc[0]]
|
||||
if parsed_args.rolefile != '':
|
||||
read_roles = []
|
||||
if os.path.exists(parsed_args.rolefile):
|
||||
with open(parsed_args.rolefile) as file:
|
||||
roles = yaml.safe_load(file)
|
||||
self.log.fatal('{} file'.format(parsed_args.rolefile))
|
||||
self.log.fatal('{} roles'.format(roles))
|
||||
for role in roles:
|
||||
read_roles.append(role['name'])
|
||||
else:
|
||||
self.log.fatal('[ERROR] {} role file does'
|
||||
' not exits'.format(parsed_args.rolefile))
|
||||
roles = read_roles
|
||||
else:
|
||||
roles = parsed_args.roles
|
||||
params['MultiRhelRoleContainerImagePrepare'] = base_role
|
||||
for role in roles:
|
||||
params[('{}ContainerImagePrepare').format(role)] = base_role
|
||||
self.app.command_options = [word.replace("\n", "")
|
||||
for word in self.app.command_options]
|
||||
env_data = build_env_file(params, self.app.command_options)
|
||||
self.app.stdout.write(env_data)
|
||||
if parsed_args.output_env_file:
|
||||
|
|
Loading…
Reference in New Issue