diff options
Diffstat (limited to 'roles/oom_configure')
-rw-r--r-- | roles/oom_configure/defaults/main.yaml | 35 | ||||
-rw-r--r-- | roles/oom_configure/tasks/main.yaml | 210 | ||||
-rw-r--r-- | roles/oom_configure/templates/components-overrides.yaml.j2 | 153 | ||||
-rw-r--r-- | roles/oom_configure/templates/onap-overrides.yaml.j2 | 202 | ||||
-rw-r--r-- | roles/oom_configure/templates/so-overrides.yaml.j2 | 63 |
5 files changed, 663 insertions, 0 deletions
diff --git a/roles/oom_configure/defaults/main.yaml b/roles/oom_configure/defaults/main.yaml new file mode 100644 index 0000000..461e13b --- /dev/null +++ b/roles/oom_configure/defaults/main.yaml @@ -0,0 +1,35 @@ +--- +openstack_tenant_name: + "{{ lookup('env','VNFS_TENANT_NAME') | + default(os_infra.tenant.name, true) }}" +openstack_user_name: + "{{ lookup('env','VNFS_USER_NAME') | + default(os_infra.user.name, true) }}" +openstack_service_tenant_name: service + +component_enabled: + a1policymanagement: "{{ medium_onap or ('a1policymanagement' in additional_components) }}" + cli: "{{ small_onap or medium_onap or ('cli' in additional_components) }}" + consul: "{{ small_onap or medium_onap or ('consul' in additional_components) }}" + cps: "{{ small_onap or medium_onap or ('cps' in additional_components) }}" + contrib: "{{ medium_onap or ('contrib' in additional_components) }}" + dcaegen2: "{{ medium_onap or ('dcaegen2' in additional_components) }}" + dcaegen2_services: "{{ medium_onap or ('dcaegen2_services' in additional_components) }}" + dcaemod: "{{ 'dcaemod' in additional_components }}" + esr: "{{ small_onap or medium_onap or ('esr' in additional_components) }}" + holmes: "{{ medium_onap or ('holmes' in additional_components) }}" + log: "{{ small_onap or medium_onap or ('log' in additional_components) }}" + msb: "{{ small_onap or medium_onap or ('msb' in additional_components) }}" + multicloud: "{{ small_onap or medium_onap or ('multicloud' in additional_components) }}" + nbi: "{{ small_onap or medium_onap or ('nbi' in additional_components) }}" + oof: "{{ medium_onap or ('oof' in additional_components) }}" + policy: "{{ medium_onap or ('policy' in additional_components) }}" + pomba: "{{ medium_onap or ('pomba' in additional_components) }}" + portal: "{{ portal_enabled }}" + sniro_emulator: "{{ 'sniro_emulator' in additional_components }}" + uui: "{{ 'uui' in additional_components }}" + vfc: "{{ 'vfc' in additional_components }}" + vid: "{{ small_onap or medium_onap or ('vid' in additional_components) }}" + vnfsdk: "{{ 'vnfsdk' in additional_components }}" + modeling: "{{ 'modeling' in additional_components }}" + cds: "{{ small_onap or medium_onap or ('cds' in additional_components) }}" diff --git a/roles/oom_configure/tasks/main.yaml b/roles/oom_configure/tasks/main.yaml new file mode 100644 index 0000000..dc9e100 --- /dev/null +++ b/roles/oom_configure/tasks/main.yaml @@ -0,0 +1,210 @@ +--- +- name: fetch cloud config + ansible.builtin.fetch: + dest: /tmp/clouds.yaml + src: "{{ ansible_user_dir }}/.config/openstack/clouds.yaml" + flat: "yes" + +- name: load cloud config + include_vars: /tmp/clouds.yaml + +- name: initialize os_auth_url + ansible.builtin.set_fact: + os_auth_url: "{{ clouds[openstack_user_name].auth.auth_url }}" + +- name: add v3 at end of os_auth_url + ansible.builtin.set_fact: + os_auth_url: + "{{ ((os_auth_url[-3:] == 'v3/') or (os_auth_url[-2:] == 'v3')) | + ternary(os_auth_url | regex_replace('/$', ''), + (os_auth_url[-1:] == '/') | ternary( + os_auth_url ~ 'v3', + os_auth_url ~ '/v3')) }}" + +- name: set tenant id + ansible.builtin.set_fact: + tenant_id: "{{ clouds[openstack_user_name].auth.project_id }}" + when: clouds[openstack_user_name].auth.project_id is defined + +- name: retrieve tenant id + block: + - name: load cloud config + openstack.cloud.os_client_config: + + # - name: retrieve info from VNF tenant + # os_project_facts: + # cloud: "{{ openstack_user_name }}" + # name: "{{ openstack_tenant_name }}" + # register: tenant + # ISSUE with shade: You are not authorized to perform the requested action: + # identity:list_projects. + # + # - name: retrieve tenant ID + # set_fact: + # tenant_id: "{{ tenant.ansible_facts.openstack_projects.0.id }}" + + - name: retrieve info from VNF tenant -- bash way + shell: >- + set -o pipefail && \ + openstack --os-cloud {{ openstack_user_name }} project list -f json | + jq -r '[.[]| select(.Name=="{{ openstack_tenant_name }}") | .ID] | + first' + args: + executable: /bin/bash + changed_when: False + register: tenant + + - name: retrieve tenant ID -- bash way + ansible.builtin.set_fact: + tenant_id: "{{ tenant.stdout_lines.0 }}" + when: clouds[openstack_user_name].auth.project_id is not defined + +- name: generate openstack info file + ansible.builtin.copy: + content: | + openstack_user_name: {{ openstack_user_name }} + openstack_tenant_name: {{ openstack_tenant_name }} + openstack_tenant_id: {{ tenant_id }} + dest: "{{ base_dir }}/vars/openstack_infos.yml" + delegate_to: localhost + +- name: generate encrypted password for robot + shell: | + set -o pipefail &&\ + echo -n '{{ clouds[openstack_user_name].auth.password }}' | + openssl aes-128-ecb -e -K `cat encryption.key` -nosalt | + xxd -c 256 -p + args: + chdir: "{{ oom_path }}/kubernetes/so/resources/config/mso" + executable: /bin/bash + changed_when: false + register: shell + +- name: save robot encrypted password + ansible.builtin.set_fact: + robot_encrypted_password: "{{ shell.stdout }}" + +- name: set so_crypto container name + set_fact: + so_crypto: "{{ proxy_for_dockerhub }}/sdesbure/so_crypto" + when: proxy_for_dockerhub | bool + +- name: set so_crypto container name + set_fact: + so_crypto: "sdesbure/so_crypto" + when: not proxy_for_dockerhub | bool + +- name: generate encrypted password for so + shell: > + docker run --rm {{ so_crypto }} + {{ clouds[openstack_user_name].auth.password }} + `cat encryption.key` + args: + chdir: "{{ oom_path }}/kubernetes/so/resources/config/mso" + changed_when: False + register: shell + +- name: save so encrypted password + ansible.builtin.set_fact: + encrypted_password: "{{ shell.stdout }}" + +- name: create config override directory + ansible.builtin.file: + path: "{{ oom_etc_path }}" + recurse: "yes" + state: directory + +- name: check if a deployment has already been done + ansible.builtin.stat: + path: "{{ deployment_file }}" + register: deployment_stat + +- name: get deployment.yaml + when: deployment_stat.stat.exists + block: + - name: create temporary local file for deployment.yaml + ansible.builtin.tempfile: + state: file + suffix: temp + register: tmp_deployment + delegate_to: "127.0.0.1" + + - name: fetch deployment info + ansible.builtin.fetch: + dest: "{{ tmp_deployment.path }}" + src: "{{ deployment_file }}" + flat: "yes" + + - name: load deployment info + include_vars: + file: "{{ tmp_deployment.path }}" + + - name: change deployment type if needed + ansible.builtin.set_fact: + deployment_type: "{{ deployment }}" + when: deployment_type == "micro" or + (deployment_type == "small" and deployment != "micro" ) or + deployment == "full" + + always: + - name: destroy the local tmp_deployment + ansible.builtin.file: + path: "{{ tmp_deployment.path }}" + state: absent + delegate_to: "127.0.0.1" + +- name: "generate config override template for deployment {{ deployment_type }}" + ansible.builtin.template: + src: onap-overrides.yaml.j2 + dest: "{{ override_file }}" + +- name: check if pre generated component override file exists + ansible.builtin.stat: + path: "{{ base_dir }}/vars/components-overrides.yml" + delegate_to: localhost + register: stat + +- name: copy pre generated component override file + ansible.builtin.copy: + dest: "{{ override_components }}" + src: "{{ base_dir }}/vars/components-overrides.yml" + when: stat.stat.exists + +- name: "generate config override template for deployment {{ deployment_type }}" + ansible.builtin.template: + src: components-overrides.yaml.j2 + dest: "{{ override_components }}" + when: (not stat.stat.exists) and (core_onap or small_onap or medium_onap) + +- name: "generate so override template" + ansible.builtin.template: + src: so-overrides.yaml.j2 + dest: "{{ override_gating_component }}" + when: project == 'so' + +- name: save on which step we are + ansible.builtin.copy: + content: | + --- + deployment: {{ deployment_type }} + dest: "{{ deployment_file }}" + +- name: "[facts retrieved] get first node IP address (case ip not defined)" + ansible.builtin.set_fact: + first_node_ip: "{{ + hostvars[groups['kube-node'].0].ansible_default_ipv4.address }}" + when: gather_nodes_fact + +- name: "[No Facts retrieved] get first node IP address (case ip not defined)" + ansible.builtin.set_fact: + first_node_ip: "{{ hostvars[groups['kube-node'].0].ip }}" + when: not gather_nodes_fact + +- name: generate etc/hosts for utilities + become: "yes" + ansible.builtin.blockinfile: + path: /etc/hosts + marker: "# {mark} ANSIBLE MANAGED UTILITIES HOSTS" + block: | + {{ first_node_ip }} minio.minio + {{ first_node_ip }} {{ postgres_svc }}.{{ postgres_namespace }} diff --git a/roles/oom_configure/templates/components-overrides.yaml.j2 b/roles/oom_configure/templates/components-overrides.yaml.j2 new file mode 100644 index 0000000..a58cbac --- /dev/null +++ b/roles/oom_configure/templates/components-overrides.yaml.j2 @@ -0,0 +1,153 @@ +--- +aaf: + enabled: true +a1policymanagement: +{% if component_enabled.a1policymanagement %} + enabled: true +{% else %} + enabled: false +{% endif %} +appc: +{% if component_enabled.appc %} + enabled: true +{% else %} + enabled: false +{% endif %} +cli: +{% if component_enabled.cli %} + enabled: true +{% else %} + enabled: false +{% endif %} +consul: +{% if component_enabled.consul %} + enabled: true +{% else %} + enabled: false +{% endif %} +contrib: +{% if component_enabled.contrib %} + enabled: true +{% else %} + enabled: false +{% endif %} +dcaegen2: +{% if component_enabled.dcaegen2 %} + enabled: true +{% else %} + enabled: false +{% endif %} +dcaegen2-services: +{% if component_enabled.dcaegen2_services %} + enabled: true +{% else %} + enabled: false +{% endif %} +dcaemod: +{% if component_enabled.dcaemod %} + enabled: true +{% else %} + enabled: false +{% endif %} +esr: +{% if component_enabled.esr %} + enabled: true +{% else %} + enabled: false +{% endif %} +holmes: +{% if component_enabled.holmes %} + enabled: true +{% else %} + enabled: false +{% endif %} +log: +{% if component_enabled.log %} + enabled: true +{% else %} + enabled: false +{% endif %} +modeling: +{% if component_enabled.modeling %} + enabled: true +{% else %} + enabled: false +{% endif %} +msb: +{% if component_enabled.msb %} + enabled: true +{% else %} + enabled: false +{% endif %} +multicloud: +{% if component_enabled.multicloud %} + enabled: true +{% else %} + enabled: false +{% endif %} +nbi: +{% if component_enabled.nbi %} + enabled: true +{% else %} + enabled: false +{% endif %} +oof: +{% if component_enabled.oof %} + enabled: true +{% else %} + enabled: false +{% endif %} +policy: +{% if component_enabled.policy %} + enabled: true +{% else %} + enabled: false +{% endif %} +pomba: +{% if component_enabled.pomba %} + enabled: true +{% else %} + enabled: false +{% endif %} +portal: +{% if component_enabled.portal %} + enabled: true +{% else %} + enabled: false +{% endif %} +sniro-emulator: +{% if component_enabled.sniro_emulator %} + enabled: true +{% else %} + enabled: false +{% endif %} +uui: +{% if component_enabled.uui %} + enabled: true +{% else %} + enabled: false +{% endif %} +vfc: +{% if component_enabled.vfc %} + enabled: true +{% else %} + enabled: false +{% endif %} +vid: +{% if component_enabled.vid %} + enabled: true +{% else %} + enabled: false +{% endif %} +vnfsdk: +{% if component_enabled.vnfsdk %} + enabled: true +{% else %} + enabled: false +{% endif %} +cds: +{% if component_enabled.cds %} + enabled: true +{% else %} + enabled: false +{% endif %} diff --git a/roles/oom_configure/templates/onap-overrides.yaml.j2 b/roles/oom_configure/templates/onap-overrides.yaml.j2 new file mode 100644 index 0000000..a2bb227 --- /dev/null +++ b/roles/oom_configure/templates/onap-overrides.yaml.j2 @@ -0,0 +1,202 @@ +--- +global: + repository: {{ repository }} +{% if proxy_for_dockerhub %} + dockerHubRepository: "{{ proxy_for_dockerhub }}" +{% endif %} +{% if proxy_for_k8s_gcr %} + googleK8sRepository: "{{ proxy_for_k8s_gcr }}" +{% endif %} +{% if proxy_for_elastic %} + elasticRepository: "{{ proxy_for_elastic }}" +{% endif %} + flavor: {{ onap_flavor }} + masterPassword: gatingPassword +{% if use_ingress %} + ingress: + enabled: true +{% endif %} +{% if use_servicemesh %} + serviceMesh: + enabled: true + tls: true + aafEnabled: false + cmpv2Enabled: false + tlsEnabled: false + msbEnabled: false +{% endif %} + +{% if use_global_storage %} + persistence: + storageClass: {{ os_infra.onap.global_storage.class | default('-') }} +{% endif %} +{% if use_metrics %} + metrics: + enabled: true +{% if use_custom_resources_metrics %} + custom_resources: true +{% endif %} +{% endif %} +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} +aaf: + aaf-cass: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + aaf-sms: + aaf-sms-quorumclient: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +appc: + config: + enableClustering: false + openStackType: "OpenStackProvider" + openStackName: "OpenStack" + openStackKeyStoneUrl: {{ os_auth_url }} + openStackServiceTenantName: {{ openstack_service_tenant_name }} + openStackDomain: {{ clouds[openstack_user_name].auth.user_domain_name | default('Default') }} + openStackUserName: {{ openstack_user_name }} + openStackEncryptedPassword: "{{ encrypted_password }}" +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} + mariadb-galera: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +cassandra: + liveness: + initialDelaySeconds: 30 + timeoutSeconds: 30 + periodSeconds: 120 + readiness: + initialDelaySeconds: 30 + timeoutSeconds: 30 + periodSeconds: 60 + startup: + initialDelaySeconds: 30 + periodSeconds: 30 + timeoutSeconds: 120 +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +{% if use_global_storage and os_infra.onap.global_storage.rwx_class is defined %} +cds: + cds-blueprints-processor: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.rwx_class }}" +contrib: + netbox: + netbox-app: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.rwx_class }}" +{% endif %} +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} +dcaegen2: + dcae-bootstrap: + postgres: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + dcae-dashboard: + postgres: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + dcae-inventory-api: + postgres: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + dcae-redis: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +dcaegen2-services: + dcae-datafile-collector: + enabled: false + dcae-pm-mapper: + enabled: false +{% if use_global_storage and os_infra.onap.global_storage.rwx_class is defined %} +dcaemod: + dcaemod-genprocessor: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.rwx_class }}" +{% endif %} +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} +dmaap: + dmaap-bc: + postgres: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + dmaap-dr-prov: + mariadb-galera: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + message-router: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +mariadb-galera: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +modeling: + mariadb-galera: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +nbi: + config: + openStackRegion: {{ clouds[openstack_user_name].region_name }} + openStackVNFTenantId: {{ tenant_id }} + cloudOwner: {{ details.pod_owner }} +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} +oof: + music: + music-cassandra: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" + zookeeper: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +robot: + config: + openStackEncryptedPasswordHere: "{{ robot_encrypted_password }}" +{% if use_ingress %} + useIngressHost: + enabled: true +{% endif %} +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} +sdc: + sdc-es: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} +so: + so-catalog-db-adapter: + config: + openStackUserName: {{ openstack_user_name }} + openStackRegion: {{ clouds[openstack_user_name].region_name }} + openStackKeyStoneUrl: {{ os_auth_url }} + openStackServiceTenantName: {{ openstack_service_tenant_name }} + openStackEncryptedPasswordHere: "{{ encrypted_password }}" + openStackTenantId: {{ tenant_id }} + openStackKeystoneVersion: "KEYSTONE_V3" + openStackProjectDomainName: + {{ clouds[openstack_user_name].auth.user_domain_name | default('Default') }} + openStackUserDomainName: + {{ clouds[openstack_user_name].project_domain_name | default('Default') }} + so-mariadb: + config: + # gerrit branch where the latest heat code is checked in + gerritBranch: {{ branch }} +{% if use_global_storage and os_infra.onap.global_storage.fast_class is defined %} +vfc: + mariadb-galera: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +vid: + mariadb-galera: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +vnfsdk: + postgres: + persistence: + storageClassOverride: "{{ os_infra.onap.global_storage.fast_class }}" +{% endif %} diff --git a/roles/oom_configure/templates/so-overrides.yaml.j2 b/roles/oom_configure/templates/so-overrides.yaml.j2 new file mode 100644 index 0000000..837f04c --- /dev/null +++ b/roles/oom_configure/templates/so-overrides.yaml.j2 @@ -0,0 +1,63 @@ +--- +global: + soBaseImage: orange-opensource/lfn/onap/build-so/base-image:1.0 +so: + repositoryOverride: &gitlabRegistry registry.gitlab.com + image: orange-opensource/lfn/onap/build-so/api-handler-infra:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: &soHelpers + repositoryOverride: {{ repository }} + certInitializer: + repositoryOverride: {{ repository }} + so-bpmn-infra: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/bpmn-infra:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-catalog-db-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/catalog-db-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-cnf-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/mso-cnf-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-etsi-nfvo-ns-lcm: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/so-etsi-nfvo-ns-lcm:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-monitoring: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/so-monitoring:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-nssmf-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/nssmf-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-oof-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/so-oof-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-openstack-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/openstack-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-request-db-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/request-db-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-sdc-controller: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/sdc-controller:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-sdnc-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/sdnc-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-vfc-adapter: + repositoryOverride: {{ repository }} + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/vfc-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers + so-vnfm-adapter: + repositoryOverride: *gitlabRegistry + image: orange-opensource/lfn/onap/build-so/vnfm-adapter:{{ gerrit_review }}-{{ gerrit_patchset }} + soHelpers: *soHelpers |