From 6c3ba490cf3c039e64c35a71e54dc855c4c15977 Mon Sep 17 00:00:00 2001 From: Michael Arrastia Date: Thu, 29 Mar 2018 14:53:40 +0100 Subject: [PATCH] Add BABEL chart to AAI Includes: - aligned chart name - image name updated with version set to latest - handling of passwords as secrets Issue-ID: AAI-974 Change-Id: I5898364059217e77a80f43067acd6a343f893117 Signed-off-by: Michael Arrastia --- .gitignore | 13 +- kubernetes/aai/charts/aai-babel/.helmignore | 21 ++ kubernetes/aai/charts/aai-babel/Chart.yaml | 18 ++ kubernetes/aai/charts/aai-babel/requirements.yaml | 21 ++ .../resources/config/artifact-generator.properties | 264 +++++++++++++++++++++ .../resources/config/auth/auth_policy.json | 47 ++++ .../resources/config/auth/tomcat_keystore | Bin 0 -> 17136 bytes .../resources/config/babel-auth.properties | 2 + .../aai/charts/aai-babel/templates/configmap.yaml | 21 ++ .../aai/charts/aai-babel/templates/deployment.yaml | 108 +++++++++ .../aai/charts/aai-babel/templates/secrets.yaml | 37 +++ .../aai/charts/aai-babel/templates/service.yaml | 39 +++ kubernetes/aai/charts/aai-babel/values.yaml | 63 +++++ 13 files changed, 653 insertions(+), 1 deletion(-) create mode 100644 kubernetes/aai/charts/aai-babel/.helmignore create mode 100644 kubernetes/aai/charts/aai-babel/Chart.yaml create mode 100644 kubernetes/aai/charts/aai-babel/requirements.yaml create mode 100644 kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties create mode 100644 kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json create mode 100644 kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore create mode 100644 kubernetes/aai/charts/aai-babel/resources/config/babel-auth.properties create mode 100644 kubernetes/aai/charts/aai-babel/templates/configmap.yaml create mode 100644 kubernetes/aai/charts/aai-babel/templates/deployment.yaml create mode 100644 kubernetes/aai/charts/aai-babel/templates/secrets.yaml create mode 100644 kubernetes/aai/charts/aai-babel/templates/service.yaml create mode 100644 kubernetes/aai/charts/aai-babel/values.yaml diff --git a/.gitignore b/.gitignore index 4dcd874cd7..96565192cb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,16 @@ +# Application kubernetes/config/onap-parameters.yaml -.idea/* kubernetes/dist/* requirements.lock **/charts/*.tgz + + +# Eclipse +.classpath +.factorypath +.project +.settings/ + +# IntelliJ +.idea/* +*.iml diff --git a/kubernetes/aai/charts/aai-babel/.helmignore b/kubernetes/aai/charts/aai-babel/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/kubernetes/aai/charts/aai-babel/Chart.yaml b/kubernetes/aai/charts/aai-babel/Chart.yaml new file mode 100644 index 0000000000..3b0e33f1c9 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2018 Amdocs, AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +description: Babel microservice +name: aai-babel +version: 2.0.0 diff --git a/kubernetes/aai/charts/aai-babel/requirements.yaml b/kubernetes/aai/charts/aai-babel/requirements.yaml new file mode 100644 index 0000000000..9552dfd9e0 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/requirements.yaml @@ -0,0 +1,21 @@ +# Copyright © 2018 Amdocs, AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +dependencies: + - name: common + version: ~2.0.0 + # local reference to common chart, as it is + # a part of this chart's package and will not + # be published independently to a repo (at this point) + repository: '@local' diff --git a/kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties b/kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties new file mode 100644 index 0000000000..1d7e5fa01a --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/artifact-generator.properties @@ -0,0 +1,264 @@ +#action widget details +AAI.model-version-id.action=fd7fb09e-d930-41b9-b83f-cfde9df48640 +AAI.model-invariant-id.action=af593b4b-490e-4665-ad74-2f6351c0a7ce +#action-data widget details +AAI.model-invariant-id.action-data=9551346c-7d8b-4daf-9926-b93e96e2344a +AAI.model-version-id.action-data=2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd +#allotted-resource widget details +AAI.model-invariant-id.allotted-resource=f6d6a23d-a1a9-48ff-8419-b6530da2d381 +AAI.model-version-id.allotted-resource=7ad0915f-25c0-4a70-b9bc-185a75f87564 +#availability-zone widget details +AAI.model-version-id.availability-zone=6c092fb1-21b2-456b-9e01-67fb4de1896e +AAI.model-invariant-id.availability-zone=61b88c01-d819-41c0-8e21-7fd7ba47148e +#az-and-dvs-switches widget details +AAI.model-version-id.az-and-dvs-switches=b2dea88d-78a0-49bf-95c9-5819df08e966 +AAI.model-invariant-id.az-and-dvs-switches=53dc00d4-e6d9-48ec-b6cc-3d3797e9b896 +#class-of-service widget details +AAI.model-version-id.class-of-service=d2fb27cc-15eb-4c4e-828e-71d41aaecc5b +AAI.model-invariant-id.class-of-service=18094b19-d16d-4822-8acf-e92c6aefa178 +#cloud-region widget details +AAI.model-version-id.cloud-region=2a160989-b202-47dd-874b-4a0f275998f7 +AAI.model-invariant-id.cloud-region=425b2158-e51d-4509-9945-dad4556474a3 +#complex widget details +AAI.model-invariant-id.complex=af91c2f7-35fc-43cf-a13d-443f385b2353 +AAI.model-version-id.complex=3a8ab1ee-9220-4fe8-b89c-9251d160ddc2 +#connector widget details +AAI.model-version-id.connector=22104c9f-29fd-462f-be07-96cd6b46dd33 +AAI.model-invariant-id.connector=4c01c948-7607-4d66-8a6c-99c2c2717936 +#constrained-element-set widget details +AAI.model-invariant-id.constrained-element-set=c0292b4f-ee97-40cc-8c2e-f967c48f5701 +AAI.model-version-id.constrained-element-set=01102126-9c04-4a89-945b-b131e61e95d7 +#ctag-assignment widget details +AAI.model-version-id.ctag-assignment=44e5cb1f-0938-41aa-b766-d4595109fe89 +AAI.model-invariant-id.ctag-assignment=fcb8d46b-b656-4ad6-8fa4-22cef74b443f +#ctag-pool widget details +AAI.model-invariant-id.ctag-pool=46c51d4e-d67e-4a9c-b1f5-49b1e9c6fcaa +AAI.model-version-id.ctag-pool=2056c41f-23b9-4de7-9f50-819adad37d76 +#customer widget details +AAI.model-invariant-id.customer=c1d4305f-cdbd-4bbe-9069-a2f4978fd89e +AAI.model-version-id.customer=d4df5c27-98a1-4812-a8aa-c17f055b7a3f +#cvlan-tag-entry widget details +AAI.model-version-id.cvlan-tag-entry=c3878ffb-8d85-4114-bee6-e4074a9db10b +AAI.model-invariant-id.cvlan-tag-entry=245cf4b0-7cc5-4eea-bbd9-753e939adcab +#dvs-switch widget details +AAI.model-invariant-id.dvs-switch=98fbb471-1f86-428e-bd8a-c8a25de6fa23 +AAI.model-version-id.dvs-switch=4cb44ae8-e3ab-452a-9f95-bcc8a44c55ea +#edge-prop-names widget details +AAI.model-invariant-id.edge-prop-names=7a08cad4-8759-46a5-8245-095d1ba57ac6 +AAI.model-version-id.edge-prop-names=f0442326-8201-4d0e-857c-74b4ddcbfc9f +#element-choice-set widget details +AAI.model-invariant-id.element-choice-set=9a011958-7165-47a3-b872-00951d1f09ae +AAI.model-version-id.element-choice-set=af27fbfd-598d-44da-aeae-0f9d3a5fcd6a +#entitlement widget details +AAI.model-version-id.entitlement=7e27ba2e-b7db-4e13-9fae-d142152ef98a +AAI.model-invariant-id.entitlement=ae75b5a0-d5e1-4f3a-b8fb-37626a753da3 +#flavor widget details +AAI.model-invariant-id.flavor=bace8d1c-a261-4041-9e37-823117415d0f +AAI.model-version-id.flavor=36200fb5-f251-4f5d-a520-7c5ad5c2cd4b +#generic-vnf widget details +AAI.model-version-id.generic-vnf=93a6166f-b3d5-4f06-b4ba-aed48d009ad9 +AAI.model-invariant-id.generic-vnf=acc6edd8-a8d4-4b93-afaa-0994068be14c +#group-assignment widget details +AAI.model-invariant-id.group-assignment=7cc05f25-7ba2-42b7-a237-c5662a1689e1 +AAI.model-version-id.group-assignment=fe578080-ce19-4604-8760-fc264fbb2565 +#image widget details +AAI.model-version-id.image=f6a038c2-820c-42ba-8c2b-375e24e8f932 +AAI.model-invariant-id.image=3f4c7204-739b-4bbb-87a7-8a6856439c90 +#include-node-filter widget details +AAI.model-invariant-id.include-node-filter=2a2d8ad2-af0a-4e1f-9982-0c899e7dc827 +AAI.model-version-id.include-node-filter=f05f804d-7057-4ffe-bdc5-39f2f0c9c9fd +#instance-group widget details +AAI.model-version-id.instance-group=8e6ee9dc-9017-444a-83b3-219edb018128 +AAI.model-invariant-id.instance-group=3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd +#inventory-item widget details +AAI.model-invariant-id.inventory-item=cd57d844-9017-4078-aa19-926935a3d77c +AAI.model-version-id.inventory-item=69957f4a-2155-4b95-8d72-d6dd9b88b27b +#inventory-item-data widget details +AAI.model-version-id.inventory-item-data=0e54bb87-bd6e-4a2b-ad1c-6d935b87ae51 +AAI.model-invariant-id.inventory-item-data=87a383ae-cf03-432e-a9de-04e6a622d0fd +#ipsec-configuration widget details +AAI.model-invariant-id.ipsec-configuration=aca4c310-cb45-42bd-9f88-73e40ba7b962 +AAI.model-version-id.ipsec-configuration=d949fd10-36bf-408a-ac7a-cad5004d2e0d +#key-data widget details +AAI.model-version-id.key-data=c23ea04d-1a3b-453d-bc49-a6c783a5e92b +AAI.model-invariant-id.key-data=f5faa464-c2f2-4cc3-89d2-a90452dc3a07 +#l3-interface-ipv4-address-list widget details +AAI.model-version-id.l3-interface-ipv4-address-list=41e76b6f-1e06-4fd4-82cd-81c50fc4574b +AAI.model-invariant-id.l3-interface-ipv4-address-list=aad85df2-09be-40fa-b867-16415e4e10e2 +#l3-interface-ipv6-address-list widget details +AAI.model-invariant-id.l3-interface-ipv6-address-list=82966045-43ee-4982-8307-7e9610866140 +AAI.model-version-id.l3-interface-ipv6-address-list=d040621d-541a-477b-bb1b-a2b61b14e295 +#l3-network widget details +AAI.model-version-id.l3-network=9111f20f-e680-4001-b83f-19a2fc23bfc1 +AAI.model-invariant-id.l3-network=3d560d81-57d0-438b-a2a1-5334dba0651a +#lag-interface widget details +AAI.model-version-id.lag-interface=ce95f7c3-b61b-4758-ae9e-7e943b1c103d +AAI.model-invariant-id.lag-interface=e0ee9bde-c1fc-4651-a95d-8e0597bf7d70 +#lag-link widget details +AAI.model-version-id.lag-link=d29a087a-af59-4053-a3f8-0f95a92faa75 +AAI.model-invariant-id.lag-link=86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98 +#license widget details +AAI.model-invariant-id.license=b9a9b337-1f86-42d3-b9f9-f987a089507c +AAI.model-version-id.license=6889274b-a1dc-40ab-9090-93677e13e2e6 +#license-key-resource widget details +AAI.model-invariant-id.license-key-resource=9022ebfe-b54f-4911-a6b2-8c3f5ec189b7 +AAI.model-version-id.license-key-resource=24b25f8c-b8bd-4c62-9421-87c12667aac9 +#l-interface widget details +AAI.model-version-id.l-interface=a32613fd-18b9-459e-aab8-fffb3912966a +AAI.model-invariant-id.l-interface=cea0a982-8d55-4093-921e-418fbccf7060 +#logical-link widget details +AAI.model-version-id.logical-link=a1481a38-f8ba-4ae4-bdf1-06c2c6af4c54 +AAI.model-invariant-id.logical-link=fe012535-2c31-4a39-a739-612374c638a0 +#metadatum widget details +AAI.model-invariant-id.metadatum=86dbb63a-265e-4614-993f-6771c30b56a5 +AAI.model-version-id.metadatum=6bae950e-8939-41d3-a6a7-251b03e4c1fc +#model widget details +AAI.model-invariant-id.model=06d1418a-5faa-452d-a94b-a2829df5f67b +AAI.model-version-id.model=1f51c05c-b164-4c27-9c03-5cbb239fd6be +#model-constraint widget details +AAI.model-invariant-id.model-constraint=c28966f3-e758-4483-b37b-a90b05d3dd33 +AAI.model-version-id.model-constraint=ad70dd19-f156-4fb5-a865-97b5563b0d37 +#model-element widget details +AAI.model-invariant-id.model-element=2076e726-3577-477a-a300-7fa65cd4df11 +AAI.model-version-id.model-element=753e813a-ba9e-4a1d-ab34-b2f6dc6eec0c +#multicast-configuration widget details +AAI.model-invariant-id.multicast-configuration=ea78c9e3-514d-4a0a-9162-13837fa54c35 +AAI.model-version-id.multicast-configuration=666a06ee-4b57-46df-bacf-908da8f10c3f +#named-query widget details +AAI.model-version-id.named-query=5c3b7c33-afa3-4be5-8da7-1a5ac6f99896 +AAI.model-invariant-id.named-query=80b712fd-0ad3-4180-a99c-8c995cf1cc32 +#named-query-element widget details +AAI.model-version-id.named-query-element=204c641a-3494-48c8-979a-86856f5fd32a +AAI.model-invariant-id.named-query-element=3c504d40-b847-424c-9d25-4fb7e0a3e994 +#network-policy widget details +AAI.model-invariant-id.network-policy=6aa05779-94d7-4d8b-9bee-59ef2ab0c246 +AAI.model-version-id.network-policy=a0ccd9dc-7062-4940-9bcc-e91dd28af510 +#network-profile widget details +AAI.model-version-id.network-profile=01f45471-4240-498c-a9e1-235dc0b8b4a6 +AAI.model-invariant-id.network-profile=2734b44a-b8a2-40f6-957d-6256589e5d00 +#newvce widget details +AAI.model-version-id.newvce=7c79e11f-a408-4593-aa86-ba948a1236af +AAI.model-invariant-id.newvce=4b05ec9c-c55d-4987-83ff-e08d6ddb694f +#oam-network widget details +AAI.model-invariant-id.oam-network=2851cf01-9c40-4064-87d4-6184a6fcff35 +AAI.model-version-id.oam-network=f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79 +#physical-link widget details +AAI.model-invariant-id.physical-link=c822d81f-822f-4304-9623-1025b53da568 +AAI.model-version-id.physical-link=9c523936-95b4-4d7f-9f53-6bdfe0cf2c05 +#p-interface widget details +AAI.model-invariant-id.p-interface=94043c37-4e73-439c-a790-0fdd697924cd +AAI.model-version-id.p-interface=d2cdb2d0-fc1f-4a57-a89e-591b1c4e3754 +#pnf widget details +AAI.model-version-id.pnf=e9f1fa7d-c839-418a-9601-03dc0d2ad687 +AAI.model-invariant-id.pnf=862b25a1-262a-4961-bdaa-cdc55d69785a +#port-group widget details +AAI.model-version-id.port-group=03e8bb6b-b48a-46ae-b5d4-e5af577e6844 +AAI.model-invariant-id.port-group=8ce940fb-55d7-4230-9e7f-a56cc2741f77 +#property-constraint widget details +AAI.model-version-id.property-constraint=81706bbd-981e-4362-ae20-995cbcb2d995 +AAI.model-invariant-id.property-constraint=f4a863c3-6886-470a-a6ae-05723837ea45 +#pserver widget details +AAI.model-invariant-id.pserver=6d932c8f-463b-4e76-83fb-87acfbaa2e2d +AAI.model-version-id.pserver=72f0d495-bc27-4653-9e1a-eef76bd34bc9 +#related-lookup widget details +AAI.model-invariant-id.related-lookup=468f6f5b-2996-41bb-b2a3-7cf9613ebb9b +AAI.model-version-id.related-lookup=0988bab5-bf4f-4938-a419-ab249867d12a +#reserved-prop-names widget details +AAI.model-invariant-id.reserved-prop-names=0c3e0ba3-618c-498d-9127-c8d42b00170f +AAI.model-version-id.reserved-prop-names=ac49d26d-9163-430e-934a-13b738a04f5c +#result-data widget details +AAI.model-version-id.result-data=4e9b50aa-5227-4f6f-b489-62e6bbc03c79 +AAI.model-invariant-id.result-data=ff656f23-6185-406f-9006-4b26834f3e1c +#route-table-reference widget details +AAI.model-version-id.route-table-reference=fed7e326-03a7-45ff-a3f2-471470d268c4 +AAI.model-invariant-id.route-table-reference=a8614b63-2636-4c4f-98df-fd448c4241db +#routing-instance widget details +AAI.model-invariant-id.routing-instance=1c2ded4f-8b01-4193-829c-966847dfec3e +AAI.model-version-id.routing-instance=3ccbcbc7-d19e-44d5-a52f-7e18aa8d69fa +#secondary-filter widget details +AAI.model-version-id.secondary-filter=1380619d-dd1a-4cec-b755-c6407833e065 +AAI.model-invariant-id.secondary-filter=738ff299-6290-4c00-8998-bd0e96a07b93 +#segmentation-assignment widget details +AAI.model-invariant-id.segmentation-assignment=6e814aee-46e1-4583-a9d4-0049bfd2b59b +AAI.model-version-id.segmentation-assignment=c5171ae0-44fb-4c04-b482-d56702241a44 +#service widget details +AAI.model-version-id.service=ecce2c42-3957-4ae0-9442-54bc6afe27b6 +AAI.model-invariant-id.service=07a3a60b-1b6c-4367-8173-8014386f89e3 +#service-capability widget details +AAI.model-invariant-id.service-capability=b1a7cc05-d19d-443b-a5d1-733e325c4232 +AAI.model-version-id.service-capability=f9cfec1b-18da-4bba-bd83-4b26cca115cd +#service-instance widget details +AAI.model-invariant-id.service-instance=82194af1-3c2c-485a-8f44-420e22a9eaa4 +AAI.model-version-id.service-instance=46b92144-923a-4d20-b85a-3cbd847668a9 +#service-subscription widget details +AAI.model-invariant-id.service-subscription=2e1a602a-acd8-4f78-94ff-618b802a303b +AAI.model-version-id.service-subscription=5e68299a-79f2-4bfb-8fbc-2bae877a2459 +#site-pair widget details +AAI.model-version-id.site-pair=7106bc02-6552-4fc3-8a56-4f3df9034531 +AAI.model-invariant-id.site-pair=db63f3e6-f8d1-484e-8d5e-191600b7914b +#site-pair-set widget details +AAI.model-invariant-id.site-pair-set=5d4dae3e-b402-4bfd-909e-ece12ff75d26 +AAI.model-version-id.site-pair-set=a5c6c1bc-dc38-468e-9459-bb08f87247df +#snapshot widget details +AAI.model-version-id.snapshot=962a7c8b-687f-4d32-a775-fe098e214bcd +AAI.model-invariant-id.snapshot=24de00ef-aead-4b52-995b-0adf8d4bd90d +#sriov-vf widget details +AAI.model-version-id.sriov-vf=1e8b331f-3d4a-4160-b7aa-f4d5a8916625 +AAI.model-invariant-id.sriov-vf=04b2935f-33c4-40a9-8af0-8b52690042dc +#start-node-filter widget details +AAI.model-version-id.start-node-filter=aad96fd3-e75f-42fc-9777-3450c36f1168 +AAI.model-invariant-id.start-node-filter=083093a3-e407-447a-ba5d-7583e4d23e1d +#subnet widget details +AAI.model-version-id.subnet=f902a6bc-6be4-4fe5-8458-a6ec0056b374 +AAI.model-invariant-id.subnet=1b2c9ba7-e449-4831-ba15-3073672f5ef2 +#tagged-inventory-item-list widget details +AAI.model-invariant-id.tagged-inventory-item-list=e78a7eaa-f65d-4919-9c2b-5b258c8c4d7e +AAI.model-version-id.tagged-inventory-item-list=c246f6e2-e3a1-4697-94c0-5672a7fbbf04 +#tenant widget details +AAI.model-invariant-id.tenant=97c26c99-6870-44c1-8a07-1d900d3f4ce6 +AAI.model-version-id.tenant=abcc54bc-bb74-49dc-9043-7f7171707545 +#tunnel-xconnect widget details +AAI.model-invariant-id.tunnel-xconnect=50b9e2fa-005c-4bbe-b651-3251dece4cd8 +AAI.model-version-id.tunnel-xconnect=e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5 +#update-node-key widget details +AAI.model-version-id.update-node-key=6004cfa6-eb6d-4062-971f-b1fde6b74aa0 +AAI.model-invariant-id.update-node-key=fe81c801-f65d-408a-b2b7-a729a18f8154 +#vce widget details +AAI.model-version-id.vce=b6cf54b5-ec45-43e1-be64-97b4e1513333 +AAI.model-invariant-id.vce=bab6dceb-e7e6-4301-a5e0-a7399b48d792 +#vf-module widget details +AAI.model-invariant-id.vf-module=ef86f9c5-2165-44f3-8fc3-96018b609ea5 +AAI.model-version-id.vf-module=c00563ae-812b-4e62-8330-7c4d0f47088a +#vig-server widget details +AAI.model-version-id.vig-server=8e8c22f1-fbdf-48ea-844c-8bdeb44e7b16 +AAI.model-invariant-id.vig-server=bed7c3b7-35d0-4cd9-abde-41b20e68b28e +#virtual-data-center widget details +AAI.model-invariant-id.virtual-data-center=5150abcf-0c5f-4593-9afe-a19c48fc4824 +AAI.model-version-id.virtual-data-center=6dd43ced-d789-47af-a759-d3abc14e3ac1 +#vlan widget details +AAI.model-version-id.vlan=257d88a5-a269-4c35-944f-aca04fbdb791 +AAI.model-invariant-id.vlan=d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8 +#vnfc widget details +AAI.model-invariant-id.vnfc=96129eb9-f0de-4e05-8af2-73146473f766 +AAI.model-version-id.vnfc=5761e0a7-c6df-4d8a-9ebd-b8f445054dec +#vnf-image widget details +AAI.model-invariant-id.vnf-image=f9a628ff-7aa0-40e2-a93d-02d91c950982 +AAI.model-version-id.vnf-image=c4d3e747-ba4a-4b17-9896-94c6f18c19d3 +#volume widget details +AAI.model-version-id.volume=0fbe2e8f-4d91-4415-a772-88387049b38d +AAI.model-invariant-id.volume=ddd739b4-2b25-46c4-affc-41a32af5cc42 +#volume-group widget details +AAI.model-invariant-id.volume-group=fcec1b02-b2d0-4834-aef8-d71be04717dd +AAI.model-version-id.volume-group=99d44c90-1f61-4418-b9a6-56586bf38c79 +#vpe widget details +AAI.model-invariant-id.vpe=053ec3a7-5b72-492d-b54d-123805a9b967 +AAI.model-version-id.vpe=203817d3-829c-42d4-942d-2a935478e993 +#vpls-pe widget details +AAI.model-version-id.vpls-pe=b1566228-6785-4ce1-aea2-053736f80341 +AAI.model-invariant-id.vpls-pe=457ba89b-334c-4fbd-acc4-160ac0e0cdc0 +#vpn-binding widget details +AAI.model-invariant-id.vpn-binding=9e23b675-db2b-488b-b459-57aa9857baa0 +AAI.model-version-id.vpn-binding=21a146e5-9901-448c-9197-723076770119 +#vserver widget details +AAI.model-invariant-id.vserver=ff69d4e0-a8e8-4108-bdb0-dd63217e63c7 +AAI.model-version-id.vserver=8ecb2c5d-7176-4317-a255-26274edfdd53 \ No newline at end of file diff --git a/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json b/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json new file mode 100644 index 0000000000..5340a6ac75 --- /dev/null +++ b/kubernetes/aai/charts/aai-babel/resources/config/auth/auth_policy.json @@ -0,0 +1,47 @@ +{"roles": [ + { + "name": "admin", + "functions": [ + { + "name": "generateArtifacts", + "methods": [{"name": "POST"}] + } + ], + "users": [ + {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + ] + }, + { + "name": "ops", + "functions": [{ + "name": "actions", + "methods": [{"name": "POST"}] + }], + "users": [ + {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + ] + }, + { + "name": "readonly", + "functions": [ + { + "name": "actions", + "methods": [{"name": "GET"}] + } + ], + "users": [ + {"username": "CN=someone.onap.org, OU=someone, O=\"ONAP ORG\", L=NA, ST=NA, C=NA"} + ] + }, + { + "name": "basicauth", + "functions": [{ + "name": "util", + "methods": [{"name": "GET"}] + }], + "users": [{ + "user": "aai", + "pass": "OBF:deadbeef" + }] + } +]} diff --git a/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore b/kubernetes/aai/charts/aai-babel/resources/config/auth/tomcat_keystore new file mode 100644 index 0000000000000000000000000000000000000000..cbec3904283da265e46cb007c3abac66d9e7ce58 GIT binary patch literal 17136 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

d|dVR?K3PGlurIJ7H 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