Move the image specification to the armada manifest
This commit updates to move the image specification from overrides generation to armada manifest and get the download image list from both overrides files and armada manifest. Story: 2005350 Task: 30312 Change-Id: Iea17a516c53cce4a0baaef684aa3c6cf6b3eff28 Signed-off-by: Angie Wang <angie.wang@windriver.com>
This commit is contained in:
parent
d1536ac9df
commit
05cc8f9d77
@ -126,6 +126,11 @@ data:
|
||||
- type: job
|
||||
labels:
|
||||
app: rbd-provisioner
|
||||
values:
|
||||
images:
|
||||
tags:
|
||||
# TODO: Remove after ceph upgrade
|
||||
rbd_provisioner_storage_init: docker.io/starlingx/stx-ceph-config-helper:master-centos-dev-latest
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/rbd-provisioner-0.1.0.tgz
|
||||
@ -187,7 +192,7 @@ data:
|
||||
values:
|
||||
monitoring:
|
||||
prometheus:
|
||||
enabled: true
|
||||
enabled: false
|
||||
labels:
|
||||
server:
|
||||
node_selector_key: openstack-control-plane
|
||||
@ -195,6 +200,9 @@ data:
|
||||
prometheus_mysql_exporter:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
prometheus_mysql_exporter_helm_tests: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
affinity:
|
||||
anti:
|
||||
@ -233,6 +241,9 @@ data:
|
||||
server:
|
||||
node_selector_key: openstack-compute-node
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
garbd: docker.io/starlingx/stx-mariadb:master-centos-stable-latest
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/garbd-0.1.0.tgz
|
||||
@ -271,7 +282,7 @@ data:
|
||||
node_selector_value: enabled
|
||||
monitoring:
|
||||
prometheus:
|
||||
enabled: true
|
||||
enabled: false
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/memcached-0.1.0.tgz
|
||||
@ -310,7 +321,7 @@ data:
|
||||
values:
|
||||
monitoring:
|
||||
prometheus:
|
||||
enabled: true
|
||||
enabled: false
|
||||
labels:
|
||||
server:
|
||||
node_selector_key: openstack-control-plane
|
||||
@ -318,6 +329,9 @@ data:
|
||||
prometheus_rabbitmq_exporter:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
prometheus_rabbitmq_exporter_helm_tests: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
affinity:
|
||||
anti:
|
||||
@ -376,7 +390,23 @@ data:
|
||||
job:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
keystone_api: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
keystone_credential_rotate: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
keystone_credential_setup: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
keystone_db_sync: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
keystone_domain_manage: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
keystone_fernet_rotate: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
keystone_fernet_setup: docker.io/starlingx/stx-keystone:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
user:
|
||||
keystone:
|
||||
uid: 0
|
||||
replicas:
|
||||
api: 2
|
||||
affinity:
|
||||
@ -426,6 +456,17 @@ data:
|
||||
job:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
barbican_api: docker.io/starlingx/stx-barbican:master-centos-dev-latest
|
||||
barbican_db_sync: docker.io/starlingx/stx-barbican:master-centos-dev-latest
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
scripted_test: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
replicas:
|
||||
api: 2
|
||||
@ -479,6 +520,18 @@ data:
|
||||
registry:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
glance_storage_init: docker.io/starlingx/stx-ceph-config-helper:master-centos-dev-latest
|
||||
glance_api: docker.io/starlingx/stx-glance:master-centos-dev-latest
|
||||
glance_db_sync: docker.io/starlingx/stx-glance:master-centos-dev-latest
|
||||
glance_registry: docker.io/starlingx/stx-glance:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
replicas:
|
||||
api: 2
|
||||
@ -539,6 +592,22 @@ data:
|
||||
volume:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
cinder_api: docker.io/starlingx/stx-cinder:master-centos-dev-latest
|
||||
cinder_backup: docker.io/starlingx/stx-cinder:master-centos-dev-latest
|
||||
cinder_backup_storage_init: docker.io/starlingx/stx-ceph-config-helper:master-centos-dev-latest
|
||||
cinder_db_sync: docker.io/starlingx/stx-cinder:master-centos-dev-latest
|
||||
cinder_scheduler: docker.io/starlingx/stx-cinder:master-centos-dev-latest
|
||||
cinder_storage_init: docker.io/starlingx/stx-ceph-config-helper:master-centos-dev-latest
|
||||
cinder_volume: docker.io/starlingx/stx-cinder:master-centos-dev-latest
|
||||
cinder_volume_usage_audit: docker.io/starlingx/stx-cinder:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
replicas:
|
||||
api: 2
|
||||
@ -580,6 +649,9 @@ data:
|
||||
libvirt:
|
||||
node_selector_key: openstack-compute-node
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
libvirt: docker.io/starlingx/stx-libvirt:master-centos-stable-latest
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/libvirt-0.1.0.tgz
|
||||
@ -717,6 +789,29 @@ data:
|
||||
test:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
nova_api: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_cell_setup: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_cell_setup_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
nova_compute: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_compute_ironic: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_compute_ssh: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_conductor: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_consoleauth: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_db_sync: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_novncproxy: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_placement: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_scheduler: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_spiceproxy: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_spiceproxy_assets: docker.io/starlingx/stx-nova:master-centos-dev-latest
|
||||
nova_storage_init: docker.io/starlingx/stx-ceph-config-helper:master-centos-dev-latest
|
||||
pod:
|
||||
replicas:
|
||||
api_metadata: 1
|
||||
@ -859,6 +954,11 @@ data:
|
||||
labels:
|
||||
release_group: osh-openstack-nova-api-proxy
|
||||
component: test
|
||||
values:
|
||||
images:
|
||||
tags:
|
||||
nova_api_proxy: docker.io/starlingx/stx-nova-api-proxy:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
source:
|
||||
type: tar
|
||||
location: http://172.17.0.1/helm_charts/nova-api-proxy-0.1.0.tgz
|
||||
@ -944,6 +1044,23 @@ data:
|
||||
test:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
neutron_db_sync: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
neutron_server: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_dhcp: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_metadata: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_l3: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_openvswitch_agent: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_linuxbridge_agent: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_sriov_agent: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
neutron_sriov_agent_init: docker.io/starlingx/stx-neutron:master-centos-dev-latest
|
||||
network:
|
||||
interface:
|
||||
tunnel: docker0
|
||||
@ -1081,6 +1198,21 @@ data:
|
||||
job:
|
||||
node_selector_key: openstack-control-plane
|
||||
node_selector_value: enabled
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_api: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_cfn: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_cloudwatch: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_db_sync: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_engine: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_engine_cleaner: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
heat_purge_deleted: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
conf:
|
||||
policy:
|
||||
stacks:global_index: rule:context_is_admin
|
||||
@ -1131,6 +1263,20 @@ data:
|
||||
release_group: osh-openstack-aodh
|
||||
component: test
|
||||
values:
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
aodh_api: docker.io/starlingx/stx-aodh:master-centos-dev-latest
|
||||
aodh_alarms_cleaner: docker.io/starlingx/stx-aodh:master-centos-dev-latest
|
||||
aodh_db_sync: docker.io/starlingx/stx-aodh:master-centos-dev-latest
|
||||
aodh_evaluator: docker.io/starlingx/stx-aodh:master-centos-dev-latest
|
||||
aodh_listener: docker.io/starlingx/stx-aodh:master-centos-dev-latest
|
||||
aodh_notifier: docker.io/starlingx/stx-aodh:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
pod:
|
||||
user:
|
||||
aodh:
|
||||
@ -1179,6 +1325,18 @@ data:
|
||||
release_group: osh-openstack-gnocchi
|
||||
component: test
|
||||
values:
|
||||
images:
|
||||
tags:
|
||||
db_init: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
db_init_indexer: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
db_sync: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
gnocchi_api: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
gnocchi_metricd: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
gnocchi_resources_cleaner: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
gnocchi_statsd: docker.io/starlingx/stx-gnocchi:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
conf:
|
||||
gnocchi:
|
||||
indexer:
|
||||
@ -1324,6 +1482,17 @@ data:
|
||||
anti:
|
||||
type:
|
||||
default: requiredDuringSchedulingIgnoredDuringExecution
|
||||
images:
|
||||
tags:
|
||||
bootstrap: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
panko_db_sync: docker.io/starlingx/stx-panko:master-centos-dev-latest
|
||||
panko_api: docker.io/starlingx/stx-panko:master-centos-dev-latest
|
||||
panko_events_cleaner: docker.io/starlingx/stx-panko:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
jobs:
|
||||
events_cleaner:
|
||||
# hourly at the 10 minute mark
|
||||
@ -1364,6 +1533,21 @@ data:
|
||||
release_group: osh-openstack-ceilometer
|
||||
component: test
|
||||
values:
|
||||
images:
|
||||
tags:
|
||||
ks_service: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_user: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
ks_endpoints: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
db_init_mongodb: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_db_sync: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_central: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_compute: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_ipmi: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_notification: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_collector: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
ceilometer_api: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
test: docker.io/starlingx/stx-ceilometer:master-centos-dev-latest
|
||||
dependencies:
|
||||
static:
|
||||
central:
|
||||
@ -1871,6 +2055,12 @@ data:
|
||||
labels:
|
||||
release_group: osh-openstack-horizon
|
||||
values:
|
||||
images:
|
||||
tags:
|
||||
db_drop: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
db_init: docker.io/starlingx/stx-heat:master-centos-dev-latest
|
||||
horizon: docker.io/starlingx/stx-horizon:master-centos-dev-latest
|
||||
horizon_db_sync: docker.io/starlingx/stx-horizon:master-centos-dev-latest
|
||||
network:
|
||||
node_port:
|
||||
enabled: 'true'
|
||||
|
@ -151,7 +151,7 @@ ephemeral_pools:
|
||||
#
|
||||
images:
|
||||
tags:
|
||||
rbd_provisioner: quay.io/external_storage/rbd-provisioner:latest
|
||||
rbd_provisioner: quay.io/external_storage/rbd-provisioner:v2.1.1-k8s1.11
|
||||
rbd_provisioner_storage_init: docker.io/port/ceph-config-helper:v1.10.3
|
||||
pull_policy: "IfNotPresent"
|
||||
local_registry:
|
||||
|
@ -37,5 +37,6 @@ python-magnumclient>=2.0.0 # Apache-2.0
|
||||
psutil
|
||||
simplejson>=2.2.0 # MIT
|
||||
rpm
|
||||
ruamel.yaml>=0.13.14 # MIT
|
||||
docker # Apache-2.0
|
||||
kubernetes # Apache-2.0
|
||||
|
@ -20,22 +20,22 @@ from sysinv.helm import helm
|
||||
CONF = cfg.CONF
|
||||
|
||||
|
||||
def create_app_overrides_action(path, app_name=None, repository=None, namespace=None):
|
||||
def create_app_overrides_action(path, app_name=None, namespace=None):
|
||||
dbapi = api.get_instance()
|
||||
operator = helm.HelmOperator(dbapi=dbapi, path=path, docker_repository=repository)
|
||||
operator = helm.HelmOperator(dbapi=dbapi, path=path)
|
||||
operator.generate_helm_application_overrides(app_name, namespace)
|
||||
|
||||
|
||||
def create_armada_app_overrides_action(path, app_name=None, repository=None, namespace=None):
|
||||
def create_armada_app_overrides_action(path, app_name=None, namespace=None):
|
||||
dbapi = api.get_instance()
|
||||
operator = helm.HelmOperator(dbapi=dbapi, path=path, docker_repository=repository)
|
||||
operator = helm.HelmOperator(dbapi=dbapi, path=path)
|
||||
operator.generate_helm_application_overrides(app_name, namespace,
|
||||
armada_format=True)
|
||||
|
||||
|
||||
def create_chart_override_action(path, chart_name=None, repository=None, namespace=None):
|
||||
def create_chart_override_action(path, chart_name=None, namespace=None):
|
||||
dbapi = api.get_instance()
|
||||
operator = helm.HelmOperator(dbapi=dbapi, path=path, docker_repository=repository)
|
||||
operator = helm.HelmOperator(dbapi=dbapi, path=path)
|
||||
operator.generate_helm_chart_overrides(chart_name, namespace)
|
||||
|
||||
|
||||
@ -44,21 +44,18 @@ def add_action_parsers(subparsers):
|
||||
parser.set_defaults(func=create_app_overrides_action)
|
||||
parser.add_argument('path', nargs='?')
|
||||
parser.add_argument('app_name', nargs='?')
|
||||
parser.add_argument('repository', nargs='?')
|
||||
parser.add_argument('namespace', nargs='?')
|
||||
|
||||
parser = subparsers.add_parser('create-armada-app-overrides')
|
||||
parser.set_defaults(func=create_armada_app_overrides_action)
|
||||
parser.add_argument('path', nargs='?')
|
||||
parser.add_argument('app_name', nargs='?')
|
||||
parser.add_argument('repository', nargs='?')
|
||||
parser.add_argument('namespace', nargs='?')
|
||||
|
||||
parser = subparsers.add_parser('create-chart-overrides')
|
||||
parser.set_defaults(func=create_chart_override_action)
|
||||
parser.add_argument('path', nargs='?')
|
||||
parser.add_argument('chart_name', nargs='?')
|
||||
parser.add_argument('repository', nargs='?')
|
||||
parser.add_argument('namespace', nargs='?')
|
||||
|
||||
|
||||
@ -75,18 +72,15 @@ def main():
|
||||
|
||||
CONF.action.func(CONF.action.path,
|
||||
CONF.action.app_name,
|
||||
CONF.action.repository,
|
||||
CONF.action.namespace)
|
||||
elif CONF.action.name == 'create-armada-app-overrides':
|
||||
CONF.action.func(CONF.action.path,
|
||||
CONF.action.app_name,
|
||||
CONF.action.repository,
|
||||
CONF.action.namespace)
|
||||
elif CONF.action.name == 'create-chart-overrides':
|
||||
try:
|
||||
CONF.action.func(CONF.action.path,
|
||||
CONF.action.chart_name,
|
||||
CONF.action.repository,
|
||||
CONF.action.namespace)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
@ -16,11 +16,11 @@ import keyring
|
||||
import os
|
||||
import pwd
|
||||
import re
|
||||
import ruamel.yaml as yaml
|
||||
import shutil
|
||||
import subprocess
|
||||
import threading
|
||||
import time
|
||||
import yaml
|
||||
|
||||
from collections import namedtuple
|
||||
from eventlet import greenpool
|
||||
@ -62,6 +62,7 @@ TARFILE_TRANSFER_CHUNK_SIZE = 1024 * 512
|
||||
DOCKER_REGISTRY_USER = 'admin'
|
||||
DOCKER_REGISTRY_SERVICE = 'CGCS'
|
||||
DOCKER_REGISTRY_SECRET = 'default-registry-key'
|
||||
DOCKER_REGISTRY_PORT = '9001'
|
||||
|
||||
|
||||
# Helper functions
|
||||
@ -311,17 +312,18 @@ class AppOperator(object):
|
||||
for r, f in cutils.get_files_matching(path, 'values.yaml'):
|
||||
with open(os.path.join(r, f), 'r') as value_f:
|
||||
try:
|
||||
y = yaml.load(value_f)
|
||||
y = yaml.safe_load(value_f)
|
||||
ids = y["images"]["tags"].values()
|
||||
except (TypeError, KeyError):
|
||||
pass
|
||||
image_tags.extend(ids)
|
||||
return list(set(image_tags))
|
||||
|
||||
def _get_image_tags_by_charts(self, app_images_file, charts):
|
||||
def _get_image_tags_by_charts(self, app_images_file, app_manifest_file):
|
||||
""" Mine the image tags for charts from the images file. Add the
|
||||
converted image tags to the overrides if the image tags from
|
||||
the charts do not exist. Intended for system app.
|
||||
image tags to the manifest file if the image tags from the charts
|
||||
do not exist in both overrides file and manifest file. Convert
|
||||
the image tags in the manifest file. Intended for system app.
|
||||
|
||||
The image tagging conversion(local docker registry address prepended):
|
||||
${LOCAL_DOCKER_REGISTRY_IP}:${REGISTRY_PORT}/<image-name>
|
||||
@ -329,64 +331,102 @@ class AppOperator(object):
|
||||
"""
|
||||
|
||||
local_registry_server = self._docker.get_local_docker_registry_server()
|
||||
manifest_image_tags_updated = False
|
||||
image_tags = []
|
||||
|
||||
if os.path.exists(app_images_file):
|
||||
with open(app_images_file, 'r') as f:
|
||||
images_file = yaml.safe_load(f)
|
||||
|
||||
if os.path.exists(app_manifest_file):
|
||||
with open(app_manifest_file, 'r') as f:
|
||||
charts = list(yaml.load_all(f, Loader=yaml.RoundTripLoader))
|
||||
|
||||
for chart in charts:
|
||||
images_charts = {}
|
||||
images_overrides = {}
|
||||
overrides = chart.namespace + '-' + chart.name + '.yaml'
|
||||
overrides_file = os.path.join(common.HELM_OVERRIDES_PATH,
|
||||
overrides)
|
||||
images_manifest = {}
|
||||
|
||||
# Get the image tags by chart from the images file
|
||||
if os.path.exists(app_images_file):
|
||||
with open(app_images_file, 'r') as f:
|
||||
overrides_image_tags_updated = False
|
||||
chart_image_tags_updated = False
|
||||
|
||||
if "armada/Chart/" in chart['schema']:
|
||||
chart_data = chart['data']
|
||||
chart_name = chart_data['chart_name']
|
||||
chart_namespace = chart_data['namespace']
|
||||
|
||||
# Get the image tags by chart from the images file
|
||||
if chart_name in images_file:
|
||||
images_charts = images_file[chart_name]
|
||||
|
||||
# Get the image tags from the overrides file
|
||||
overrides = chart_namespace + '-' + chart_name + '.yaml'
|
||||
app_overrides_file = os.path.join(common.HELM_OVERRIDES_PATH, overrides)
|
||||
if os.path.exists(app_overrides_file):
|
||||
try:
|
||||
doc = yaml.load(f)
|
||||
images_charts = doc[chart.name]
|
||||
with open(app_overrides_file, 'r') as f:
|
||||
overrides_file = yaml.safe_load(f)
|
||||
images_overrides = overrides_file['data']['values']['images']['tags']
|
||||
except (TypeError, KeyError):
|
||||
pass
|
||||
|
||||
# Get the image tags from the overrides file
|
||||
if os.path.exists(overrides_file):
|
||||
with open(overrides_file, 'r') as f:
|
||||
try:
|
||||
y = yaml.load(f)
|
||||
images_overrides = y["data"]["values"]["images"]["tags"]
|
||||
except (TypeError, KeyError):
|
||||
LOG.info("Overrides file %s has no img tags" %
|
||||
overrides_file)
|
||||
pass
|
||||
# Get the image tags from the armada manifest file
|
||||
try:
|
||||
images_manifest = chart_data['values']['images']['tags']
|
||||
except (TypeError, KeyError):
|
||||
LOG.info("Armada manifest file has no img tags for "
|
||||
"chart %s" % chart_name)
|
||||
pass
|
||||
|
||||
# Add the converted image tags to the overrides if the images from
|
||||
# the chart path do not exist in the overrides
|
||||
tags_updated = False
|
||||
for key, image_tag in images_charts.items():
|
||||
if (key not in images_overrides and
|
||||
not image_tag.startswith(local_registry_server)):
|
||||
images_overrides.update(
|
||||
{key: '{}/{}'.format(local_registry_server, image_tag)})
|
||||
tags_updated = True
|
||||
# For the image tags from the chart path which do not exist
|
||||
# in the overrides and manifest file, add to manifest file.
|
||||
# Convert the image tags in the overrides and manifest file
|
||||
# with local docker registry address.
|
||||
# Append the required images to the image_tags list.
|
||||
for key in images_charts:
|
||||
if key not in images_overrides:
|
||||
if key not in images_manifest:
|
||||
images_manifest.update({key: images_charts[key]})
|
||||
if not re.match(r'^.+:.+/', images_manifest[key]):
|
||||
images_manifest.update(
|
||||
{key: '{}/{}'.format(local_registry_server, images_manifest[key])})
|
||||
chart_image_tags_updated = True
|
||||
image_tags.append(images_manifest[key])
|
||||
else:
|
||||
if not re.match(r'^.+:.+/', images_overrides[key]):
|
||||
images_overrides.update(
|
||||
{key: '{}/{}'.format(local_registry_server, images_overrides[key])})
|
||||
overrides_image_tags_updated = True
|
||||
image_tags.append(images_overrides[key])
|
||||
|
||||
if tags_updated:
|
||||
with open(overrides_file, 'w') as f:
|
||||
try:
|
||||
if "images" not in y["data"]["values"]:
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
y["data"]["values"]["images"] = {"tags": images_overrides}
|
||||
else:
|
||||
y["data"]["values"]["images"]["tags"] = images_overrides
|
||||
if overrides_image_tags_updated:
|
||||
with open(app_overrides_file, 'w') as f:
|
||||
try:
|
||||
overrides_file["data"]["values"]["images"] = {"tags": images_overrides}
|
||||
yaml.safe_dump(overrides_file, f, default_flow_style=False)
|
||||
LOG.info("Overrides file %s updated with new image tags" %
|
||||
app_overrides_file)
|
||||
except (TypeError, KeyError):
|
||||
LOG.error("Overrides file %s fails to update" %
|
||||
app_overrides_file)
|
||||
|
||||
yaml.safe_dump(y, f, explicit_start=True,
|
||||
default_flow_style=False)
|
||||
LOG.info("Overrides file %s updated with new image tags" %
|
||||
overrides_file)
|
||||
except (TypeError, KeyError):
|
||||
LOG.error("Overrides file %s fails to update" %
|
||||
overrides_file)
|
||||
if chart_image_tags_updated:
|
||||
if 'values' in chart_data:
|
||||
chart_data['values']['images'] = {'tags': images_manifest}
|
||||
else:
|
||||
chart_data["values"] = {"images": {"tags": images_manifest}}
|
||||
manifest_image_tags_updated = True
|
||||
|
||||
if images_overrides:
|
||||
image_tags.extend(images_overrides.values())
|
||||
if manifest_image_tags_updated:
|
||||
with open(app_manifest_file, 'w') as f:
|
||||
try:
|
||||
yaml.dump_all(charts, f, Dumper=yaml.RoundTripDumper,
|
||||
explicit_start=True, default_flow_style=False)
|
||||
LOG.info("Manifest file %s updated with new image tags" %
|
||||
app_manifest_file)
|
||||
except Exception as e:
|
||||
LOG.error("Manifest file %s fails to update with "
|
||||
"new image tags: %s" % (app_manifest_file, e))
|
||||
|
||||
return list(set(image_tags))
|
||||
|
||||
@ -418,7 +458,7 @@ class AppOperator(object):
|
||||
self._save_images_list_by_charts(app)
|
||||
# Get the list of images from the updated images overrides
|
||||
images_to_download = self._get_image_tags_by_charts(
|
||||
app.imgfile_abs, app.charts)
|
||||
app.imgfile_abs, app.armada_mfile_abs)
|
||||
else:
|
||||
# For custom apps, mine image tags from application path
|
||||
images_to_download = self._get_image_tags_by_path(app.path)
|
||||
@ -447,7 +487,7 @@ class AppOperator(object):
|
||||
if os.path.exists(chart_path):
|
||||
with open(chart_path, 'r') as f:
|
||||
try:
|
||||
y = yaml.load(f)
|
||||
y = yaml.safe_load(f)
|
||||
images = y["images"]["tags"]
|
||||
except (TypeError, KeyError):
|
||||
LOG.warn("Chart %s has no image tags" % chart_name)
|
||||
@ -460,7 +500,7 @@ class AppOperator(object):
|
||||
|
||||
def _retrieve_images_list(self, app_images_file):
|
||||
with open(app_images_file, 'rb') as f:
|
||||
images_list = yaml.load(f)
|
||||
images_list = yaml.safe_load(f)
|
||||
return images_list
|
||||
|
||||
def _download_images(self, app):
|
||||
@ -473,7 +513,8 @@ class AppOperator(object):
|
||||
# saved images list.
|
||||
saved_images_list = self._retrieve_images_list(app.imgfile_abs)
|
||||
saved_download_images_list = list(saved_images_list.get("download_images"))
|
||||
images_to_download = self._get_image_tags_by_charts(app.imgfile_abs, app.charts)
|
||||
images_to_download = self._get_image_tags_by_charts(
|
||||
app.imgfile_abs, app.armada_mfile_abs)
|
||||
if set(saved_download_images_list) != set(images_to_download):
|
||||
saved_images_list.update({"download_images": images_to_download})
|
||||
with open(app.imgfile_abs, 'wb') as f:
|
||||
@ -621,7 +662,7 @@ class AppOperator(object):
|
||||
if os.path.exists(lfile) and os.path.getsize(lfile) > 0:
|
||||
with open(lfile, 'r') as f:
|
||||
try:
|
||||
y = yaml.load(f)
|
||||
y = yaml.safe_load(f)
|
||||
labels = y['labels']
|
||||
except KeyError:
|
||||
raise exception.KubeAppUploadFailure(
|
||||
@ -795,7 +836,7 @@ class AppOperator(object):
|
||||
def _get_list_of_charts(self, manifest_file):
|
||||
charts = []
|
||||
with open(manifest_file, 'r') as f:
|
||||
docs = yaml.load_all(f)
|
||||
docs = yaml.safe_load_all(f)
|
||||
for doc in docs:
|
||||
try:
|
||||
if "armada/Chart/" in doc['schema']:
|
||||
@ -1363,7 +1404,7 @@ class DockerHelper(object):
|
||||
cutils.format_address_name(constants.CONTROLLER_HOSTNAME,
|
||||
constants.NETWORK_TYPE_MGMT)
|
||||
).address
|
||||
registry_server = '{}:{}'.format(registry_ip, common.REGISTRY_PORT)
|
||||
registry_server = '{}:{}'.format(registry_ip, DOCKER_REGISTRY_PORT)
|
||||
return registry_server
|
||||
|
||||
def _get_img_tag_with_registry(self, pub_img_tag):
|
||||
|
@ -25,7 +25,6 @@ class AodhHelm(openstack.OpenstackBaseHelm):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': self._get_pod_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
'conf': self._get_conf_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides()
|
||||
}
|
||||
@ -50,26 +49,6 @@ class AodhHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': self.docker_image,
|
||||
'aodh_api': self.docker_image,
|
||||
'aodh_alarms_cleaner': self.docker_image,
|
||||
'aodh_db_sync': self.docker_image,
|
||||
'aodh_evaluator': self.docker_image,
|
||||
'aodh_listener': self.docker_image,
|
||||
'aodh_notifier': self.docker_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_conf_overrides(self):
|
||||
return {
|
||||
'aodh': {
|
||||
|
@ -26,7 +26,6 @@ class BarbicanHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
},
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'images': self._get_images_overrides()
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,20 +60,3 @@ class BarbicanHelm(openstack.OpenstackBaseHelm):
|
||||
self.SERVICE_NAME, self.AUTH_USERS)
|
||||
},
|
||||
}
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'barbican_api': self.docker_image,
|
||||
'barbican_db_sync': self.docker_image,
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
'scripted_test': heat_image,
|
||||
}
|
||||
}
|
||||
|
@ -40,27 +40,6 @@ class BaseHelm(object):
|
||||
def context(self):
|
||||
return self._operator.context
|
||||
|
||||
@property
|
||||
def docker_repo_source(self):
|
||||
return common.DOCKER_SRC_LOC
|
||||
|
||||
@property
|
||||
def docker_repo_tag(self):
|
||||
return common.DOCKER_SRCS[self.docker_repo_source][common.IMG_TAG_KEY]
|
||||
|
||||
@property
|
||||
def docker_image(self):
|
||||
if self.docker_repo_source == common.DOCKER_SRC_LOC:
|
||||
return "{}:{}/{}/{}{}:{}".format(
|
||||
self._get_management_address(), common.REGISTRY_PORT, common.REPO_LOC,
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_PREFIX_KEY],
|
||||
self.SERVICE_NAME, self.docker_repo_tag)
|
||||
else:
|
||||
return "{}/{}{}:{}".format(
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_BASE_KEY],
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_PREFIX_KEY],
|
||||
self.SERVICE_NAME, self.docker_repo_tag)
|
||||
|
||||
@staticmethod
|
||||
def quoted_str(value):
|
||||
return quoted_str(value)
|
||||
|
@ -25,7 +25,6 @@ class CeilometerHelm(openstack.OpenstackBaseHelm):
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
'pod': self._get_pod_overrides(),
|
||||
'conf': self._get_conf_overrides(),
|
||||
'manifests': self._get_manifests_overrides(),
|
||||
@ -41,27 +40,6 @@ class CeilometerHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'db_init': self.docker_image,
|
||||
'db_init_mongodb': self.docker_image,
|
||||
'ceilometer_db_sync': self.docker_image,
|
||||
'ceilometer_central': self.docker_image,
|
||||
'ceilometer_compute': self.docker_image,
|
||||
'ceilometer_ipmi': self.docker_image,
|
||||
'ceilometer_notification': self.docker_image,
|
||||
'ceilometer_collector': self.docker_image,
|
||||
'ceilometer_api': self.docker_image,
|
||||
'test': self.docker_image
|
||||
}
|
||||
}
|
||||
|
||||
def _get_pod_overrides(self):
|
||||
return {
|
||||
'replicas': {
|
||||
|
@ -24,14 +24,6 @@ class CephPoolsAuditHelm(base.BaseHelm):
|
||||
|
||||
SERVICE_NAME = 'ceph-pools'
|
||||
|
||||
@property
|
||||
def docker_repo_source(self):
|
||||
return common.DOCKER_SRC_STX
|
||||
|
||||
@property
|
||||
def docker_repo_tag(self):
|
||||
return common.DOCKER_SRCS[self.docker_repo_source][common.IMG_TAG_KEY]
|
||||
|
||||
def get_namespaces(self):
|
||||
return self.SUPPORTED_NAMESPACES
|
||||
|
||||
|
@ -35,7 +35,6 @@ class CinderHelm(openstack.OpenstackBaseHelm):
|
||||
'backup': self._num_controllers()
|
||||
}
|
||||
},
|
||||
'images': self._get_images_overrides(),
|
||||
'conf': {
|
||||
'cinder': self._get_conf_cinder_overrides(),
|
||||
'ceph': self._get_conf_ceph_overrides(),
|
||||
@ -181,36 +180,6 @@ class CinderHelm(openstack.OpenstackBaseHelm):
|
||||
|
||||
}
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
|
||||
# TODO: Remove after ceph upgrade
|
||||
# Format the name of the stx specific ceph config helper
|
||||
ceph_config_helper_image = "{}:{}/{}/{}{}:{}".format(
|
||||
self._get_management_address(), common.REGISTRY_PORT, common.REPO_LOC,
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_PREFIX_KEY],
|
||||
'ceph-config-helper', self.docker_repo_tag)
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'cinder_api': self.docker_image,
|
||||
'cinder_backup': self.docker_image,
|
||||
'cinder_backup_storage_init': ceph_config_helper_image,
|
||||
'cinder_db_sync': self.docker_image,
|
||||
'cinder_scheduler': self.docker_image,
|
||||
'cinder_storage_init': ceph_config_helper_image,
|
||||
'cinder_volume': self.docker_image,
|
||||
'cinder_volume_usage_audit': self.docker_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_primary_ceph_backend(self):
|
||||
try:
|
||||
backend = self.dbapi.storage_backend_get_by_name(
|
||||
|
@ -47,51 +47,3 @@ LABEL_REMOTE_STORAGE = 'remote-storage'
|
||||
# Label values
|
||||
LABEL_VALUE_ENABLED = 'enabled'
|
||||
LABEL_VALUE_DISABLED = 'disabled'
|
||||
|
||||
# Image Tagging
|
||||
DOCKER_SRC_OSH = 'openstackhelm'
|
||||
DOCKER_SRC_STX = 'starlingx'
|
||||
DOCKER_SRC_LOC = 'controller'
|
||||
|
||||
# TODO (rchurch): These values and settings are currently provided for early
|
||||
# integration scenarios. As we formalize delivery mechanisms, these will need to
|
||||
# be adjusted accordingly.
|
||||
REGISTRY_PORT = '9001'
|
||||
REGISTRY_OSH = 'docker.io'
|
||||
REGISTRY_STX = '128.224.186.231:%s' % REGISTRY_PORT
|
||||
REGISTRY_LOC = '192.168.204.2:%s' % REGISTRY_PORT
|
||||
|
||||
REPO_OSH = 'openstackhelm'
|
||||
REPO_STX = 'abailey'
|
||||
REPO_LOC = 'starlingx'
|
||||
|
||||
IMG_PREFIX_KEY = 'prefix'
|
||||
IMG_BASE_KEY = 'base'
|
||||
IMG_TAG_KEY = 'tag'
|
||||
|
||||
IMG_PREFIX_OSH = ''
|
||||
IMG_PREFIX_STX = 'stx-'
|
||||
IMG_PREFIX_LOC = 'stx-'
|
||||
|
||||
TAGS_PIKE = 'pike'
|
||||
TAGS_LATEST = 'latest'
|
||||
TAGS_STX_LATEST = 'master-centos-dev-latest'
|
||||
|
||||
DOCKER_SRCS = {
|
||||
DOCKER_SRC_OSH: {
|
||||
IMG_BASE_KEY: '{}/{}'.format(REGISTRY_OSH, REPO_OSH),
|
||||
IMG_PREFIX_KEY: IMG_PREFIX_OSH,
|
||||
IMG_TAG_KEY: TAGS_PIKE
|
||||
|
||||
},
|
||||
DOCKER_SRC_STX: {
|
||||
IMG_BASE_KEY: '{}/{}'.format(REGISTRY_STX, REPO_STX),
|
||||
IMG_PREFIX_KEY: IMG_PREFIX_STX,
|
||||
IMG_TAG_KEY: TAGS_STX_LATEST
|
||||
},
|
||||
DOCKER_SRC_LOC: {
|
||||
IMG_BASE_KEY: '{}/{}'.format(REGISTRY_LOC, REPO_LOC),
|
||||
IMG_PREFIX_KEY: IMG_PREFIX_LOC,
|
||||
IMG_TAG_KEY: TAGS_STX_LATEST
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,6 @@ class GarbdHelm(base.BaseHelm):
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -77,11 +76,3 @@ class GarbdHelm(base.BaseHelm):
|
||||
namespace=namespace)
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'garbd': self.docker_image
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,6 @@ class GlanceHelm(openstack.OpenstackBaseHelm):
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'storage': self._get_storage_overrides(),
|
||||
'conf': self._get_conf_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
'bootstrap': self._get_bootstrap_overrides()
|
||||
}
|
||||
}
|
||||
@ -48,30 +47,6 @@ class GlanceHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
ceph_config_helper_image = "{}:{}/{}/{}{}:{}".format(
|
||||
self._get_management_address(), common.REGISTRY_PORT,
|
||||
common.REPO_LOC,
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_PREFIX_KEY],
|
||||
'ceph-config-helper', self.docker_repo_tag)
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'glance_storage_init': ceph_config_helper_image,
|
||||
'glance_api': self.docker_image,
|
||||
'glance_db_sync': self.docker_image,
|
||||
'glance_registry': self.docker_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_pod_overrides(self):
|
||||
replicas_count = 1
|
||||
ceph_backend = self._get_primary_ceph_backend()
|
||||
|
@ -24,7 +24,6 @@ class GnocchiHelm(openstack.OpenstackBaseHelm):
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
'pod': self._get_pod_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
}
|
||||
@ -38,24 +37,6 @@ class GnocchiHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'db_init': self.docker_image,
|
||||
'db_init_indexer': self.docker_image,
|
||||
'db_sync': self.docker_image,
|
||||
'gnocchi_api': self.docker_image,
|
||||
'gnocchi_metricd': self.docker_image,
|
||||
'gnocchi_resources_cleaner': self.docker_image,
|
||||
'gnocchi_statsd': self.docker_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_pod_overrides(self):
|
||||
return {
|
||||
'replicas': {
|
||||
|
@ -26,7 +26,6 @@ class HeatHelm(openstack.OpenstackBaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': self._get_pod_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,25 +37,6 @@ class HeatHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': self.docker_image,
|
||||
'db_drop': self.docker_image,
|
||||
'db_init': self.docker_image,
|
||||
'heat_api': self.docker_image,
|
||||
'heat_cfn': self.docker_image,
|
||||
'heat_cloudwatch': self.docker_image,
|
||||
'heat_db_sync': self.docker_image,
|
||||
'heat_engine': self.docker_image,
|
||||
'heat_engine_cleaner': self.docker_image,
|
||||
'heat_purge_deleted': self.docker_image,
|
||||
'ks_endpoints': self.docker_image,
|
||||
'ks_service': self.docker_image,
|
||||
'ks_user': self.docker_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_pod_overrides(self):
|
||||
return {
|
||||
'replicas': {
|
||||
|
@ -44,26 +44,12 @@ def helm_context(func):
|
||||
class HelmOperator(object):
|
||||
"""Class to encapsulate helm override operations for System Inventory"""
|
||||
|
||||
def __init__(self, dbapi=None, path=None, docker_repository=None):
|
||||
def __init__(self, dbapi=None, path=None):
|
||||
if path is None:
|
||||
path = common.HELM_OVERRIDES_PATH
|
||||
|
||||
# Set the primary source of docker images
|
||||
if docker_repository is None:
|
||||
# During initial development, use upstream OSH images by default and
|
||||
# switch to the STX repo when the images are validated and ready for
|
||||
# use.
|
||||
docker_repository = common.DOCKER_SRC_OSH
|
||||
else:
|
||||
valid_docker_repositories = common.DOCKER_SRCS.keys()
|
||||
if docker_repository not in valid_docker_repositories:
|
||||
raise exception.InvalidHelmDockerImageSource(
|
||||
source=docker_repository,
|
||||
valid_srcs=valid_docker_repositories)
|
||||
|
||||
self.dbapi = dbapi
|
||||
self.path = path
|
||||
self.docker_repo_source = docker_repository
|
||||
|
||||
# register chart operators for lookup
|
||||
self.chart_operators = {}
|
||||
|
@ -23,7 +23,6 @@ class HorizonHelm(openstack.OpenstackBaseHelm):
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
'conf': {
|
||||
'horizon': {
|
||||
'local_settings': {
|
||||
@ -63,18 +62,6 @@ class HorizonHelm(openstack.OpenstackBaseHelm):
|
||||
},
|
||||
}
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'horizon': self.docker_image,
|
||||
'horizon_db_sync': self.docker_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_local_settings_config_overrides(self):
|
||||
local_settings_config = {
|
||||
'horizon_secret_key': self._get_or_generate_password(
|
||||
|
@ -21,7 +21,6 @@ class IronicHelm(openstack.OpenstackBaseHelm):
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,24 +31,3 @@ class IronicHelm(openstack.OpenstackBaseHelm):
|
||||
namespace=namespace)
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_init': heat_image,
|
||||
'ironic_api': self.docker_image,
|
||||
'ironic_conductor': self.docker_image,
|
||||
'ironic_db_sync': self.docker_image,
|
||||
'ironic_manage_cleaning_network': heat_image,
|
||||
'ironic_pxe': self.docker_image,
|
||||
'ironic_pxe_init': self.docker_image,
|
||||
'ironic_retrive_cleaning_network': heat_image,
|
||||
'ironic_retrive_swift_config': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
@ -35,7 +35,6 @@ class KeystoneHelm(openstack.OpenstackBaseHelm):
|
||||
'pod': self._get_pod_overrides(),
|
||||
'conf': self._get_conf_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,29 +59,8 @@ class KeystoneHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
}
|
||||
}
|
||||
if self.docker_repo_source != common.DOCKER_SRC_OSH:
|
||||
overrides.update({'user': {'keystone': {'uid': 0}}})
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'keystone_api': self.docker_image,
|
||||
'keystone_credential_rotate': self.docker_image,
|
||||
'keystone_credential_setup': self.docker_image,
|
||||
'keystone_db_sync': self.docker_image,
|
||||
'keystone_domain_manage': self.docker_image,
|
||||
'keystone_fernet_rotate': self.docker_image,
|
||||
'keystone_fernet_setup': self.docker_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_conf_keystone_default_overrides(self):
|
||||
return {
|
||||
'max_token_size': 255, # static controller.yaml => chart default
|
||||
|
@ -41,8 +41,6 @@ class LibvirtHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
}
|
||||
|
||||
self._get_images_overrides(overrides[common.HELM_NS_OPENSTACK])
|
||||
|
||||
if namespace in self.SUPPORTED_NAMESPACES:
|
||||
return overrides[namespace]
|
||||
elif namespace:
|
||||
@ -50,13 +48,3 @@ class LibvirtHelm(openstack.OpenstackBaseHelm):
|
||||
namespace=namespace)
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self, overrides_dict):
|
||||
if self.docker_repo_source != common.DOCKER_SRC_OSH:
|
||||
overrides_dict.update({
|
||||
'images': {
|
||||
'tags': {
|
||||
'libvirt': self.docker_image
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -21,7 +21,6 @@ class MagnumHelm(openstack.OpenstackBaseHelm):
|
||||
def get_overrides(self, namespace=None):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'images': self._get_images_overrides(),
|
||||
'pod': {
|
||||
'replicas': {
|
||||
'api': self._num_controllers(),
|
||||
@ -38,20 +37,3 @@ class MagnumHelm(openstack.OpenstackBaseHelm):
|
||||
namespace=namespace)
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
'magnum_api': self.docker_image,
|
||||
'magnum_conductor': self.docker_image,
|
||||
'magnum_db_sync': self.docker_image,
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,6 @@ class MariadbHelm(openstack.OpenstackBaseHelm):
|
||||
'ingress': self._num_controllers()
|
||||
}
|
||||
},
|
||||
'images': self._get_images_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
}
|
||||
}
|
||||
@ -49,16 +48,6 @@ class MariadbHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'prometheus_mysql_exporter_helm_tests': heat_image
|
||||
}
|
||||
}
|
||||
|
||||
def _get_endpoints_overrides(self):
|
||||
return {
|
||||
'oslo_db': {
|
||||
|
@ -65,7 +65,6 @@ class NeutronHelm(openstack.OpenstackBaseHelm):
|
||||
},
|
||||
},
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -240,7 +239,7 @@ class NeutronHelm(openstack.OpenstackBaseHelm):
|
||||
# obtain the assigned bridge for interface
|
||||
brname = 'br-phy%d' % index
|
||||
port_name = self._get_interface_port_name(iface)
|
||||
bridges[brname] = port_name
|
||||
bridges[brname] = port_name.encode('utf8', 'strict')
|
||||
index += 1
|
||||
return bridges
|
||||
|
||||
@ -384,32 +383,6 @@ class NeutronHelm(openstack.OpenstackBaseHelm):
|
||||
|
||||
return None
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_init': heat_image,
|
||||
'neutron_db_sync': self.docker_image,
|
||||
'db_drop': heat_image,
|
||||
'ks_user': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'neutron_server': self.docker_image,
|
||||
'neutron_dhcp': self.docker_image,
|
||||
'neutron_metadata': self.docker_image,
|
||||
'neutron_l3': self.docker_image,
|
||||
'neutron_openvswitch_agent': self.docker_image,
|
||||
'neutron_linuxbridge_agent': self.docker_image,
|
||||
# TODO (rchurch): Fix this... Suffix tied to a release???
|
||||
# 'neutron_sriov_agent': '{}{}'.format(self.docker_image,'-sriov-1804'),
|
||||
# 'neutron_sriov_agent_init': '{}{}'.format(self.docker_image,'-sriov-1804'),
|
||||
'neutron_sriov_agent': self.docker_image,
|
||||
'neutron_sriov_agent_init': self.docker_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_endpoints_overrides(self):
|
||||
overrides = {
|
||||
'identity': {
|
||||
|
@ -97,7 +97,6 @@ class NovaHelm(openstack.OpenstackBaseHelm):
|
||||
'ssh_public': ssh_publickey,
|
||||
},
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
'network': {
|
||||
'sshd': {
|
||||
'from_subnet': self._get_ssh_subnet(),
|
||||
@ -114,44 +113,6 @@ class NovaHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
|
||||
# TODO: Remove after ceph upgrade
|
||||
# Format the name of the stx specific ceph config helper
|
||||
ceph_config_helper_image = "{}:{}/{}/{}{}:{}".format(
|
||||
self._get_management_address(), common.REGISTRY_PORT,
|
||||
common.REPO_LOC,
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_PREFIX_KEY],
|
||||
'ceph-config-helper', self.docker_repo_tag)
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': heat_image,
|
||||
'ks_user': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'nova_api': self.docker_image,
|
||||
'nova_cell_setup': self.docker_image,
|
||||
'nova_cell_setup_init': heat_image,
|
||||
'nova_compute': self.docker_image,
|
||||
'nova_compute_ironic': self.docker_image,
|
||||
'nova_compute_ssh': self.docker_image,
|
||||
'nova_conductor': self.docker_image,
|
||||
'nova_consoleauth': self.docker_image,
|
||||
'nova_db_sync': self.docker_image,
|
||||
'nova_novncproxy': self.docker_image,
|
||||
'nova_placement': self.docker_image,
|
||||
'nova_scheduler': self.docker_image,
|
||||
'nova_spiceproxy': self.docker_image,
|
||||
'nova_spiceproxy_assets': self.docker_image,
|
||||
'nova_storage_init': ceph_config_helper_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_endpoints_overrides(self):
|
||||
overrides = {
|
||||
'identity': {
|
||||
|
@ -39,7 +39,6 @@ class NovaApiProxyHelm(openstack.OpenstackBaseHelm):
|
||||
},
|
||||
}
|
||||
},
|
||||
'images': self._get_images_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
}
|
||||
}
|
||||
@ -52,17 +51,6 @@ class NovaApiProxyHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'nova_api_proxy': self.docker_image,
|
||||
'ks_endpoints': heat_image
|
||||
}
|
||||
}
|
||||
|
||||
def _get_endpoints_overrides(self):
|
||||
nova_service_name = self._operator.chart_operators[
|
||||
constants.HELM_CHART_NOVA].SERVICE_NAME
|
||||
|
@ -25,7 +25,6 @@ class PankoHelm(openstack.OpenstackBaseHelm):
|
||||
overrides = {
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
'pod': self._get_pod_overrides(),
|
||||
'images': self._get_images_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides()
|
||||
}
|
||||
}
|
||||
@ -46,23 +45,6 @@ class PankoHelm(openstack.OpenstackBaseHelm):
|
||||
}
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
return {
|
||||
'tags': {
|
||||
'bootstrap': heat_image,
|
||||
'db_drop': heat_image,
|
||||
'db_init': self.docker_image,
|
||||
'panko_db_sync': self.docker_image,
|
||||
'panko_api': self.docker_image,
|
||||
'panko_events_cleaner': self.docker_image,
|
||||
'ks_endpoints': heat_image,
|
||||
'ks_service': heat_image,
|
||||
'ks_user': heat_image,
|
||||
}
|
||||
}
|
||||
|
||||
def _get_endpoints_overrides(self):
|
||||
return {
|
||||
'identity': {
|
||||
|
@ -26,7 +26,6 @@ class RabbitmqHelm(openstack.OpenstackBaseHelm):
|
||||
'server': self._num_controllers()
|
||||
}
|
||||
},
|
||||
'images': self._get_images_overrides(),
|
||||
'endpoints': self._get_endpoints_overrides(),
|
||||
}
|
||||
}
|
||||
@ -39,16 +38,6 @@ class RabbitmqHelm(openstack.OpenstackBaseHelm):
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
heat_image = self._operator.chart_operators[
|
||||
constants.HELM_CHART_HEAT].docker_image
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'prometheus_rabbitmq_exporter_helm_tests': heat_image
|
||||
}
|
||||
}
|
||||
|
||||
def _get_endpoints_overrides(self):
|
||||
credentials = self._get_endpoints_oslo_messaging_overrides(
|
||||
self.CHART, [])
|
||||
|
@ -73,7 +73,6 @@ class RbdProvisionerHelm(base.BaseHelm):
|
||||
common.HELM_NS_OPENSTACK: {
|
||||
"classdefaults": classdefaults,
|
||||
"classes": classes,
|
||||
"images": self._get_images_overrides(),
|
||||
"global": global_settings
|
||||
}
|
||||
}
|
||||
@ -85,18 +84,3 @@ class RbdProvisionerHelm(base.BaseHelm):
|
||||
namespace=namespace)
|
||||
else:
|
||||
return overrides
|
||||
|
||||
def _get_images_overrides(self):
|
||||
# TODO: Remove after ceph upgrade
|
||||
# Format the name of the stx specific ceph config helper
|
||||
local_docker_registry_ip = self._get_management_address()
|
||||
ceph_config_helper_image = "{}:{}/{}/{}{}:{}".format(
|
||||
local_docker_registry_ip, common.REGISTRY_PORT, common.REPO_LOC,
|
||||
common.DOCKER_SRCS[self.docker_repo_source][common.IMG_PREFIX_KEY],
|
||||
'ceph-config-helper', self.docker_repo_tag)
|
||||
|
||||
return {
|
||||
'tags': {
|
||||
'rbd_provisioner_storage_init': ceph_config_helper_image,
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user