diff options
Diffstat (limited to 'kubernetes')
141 files changed, 2451 insertions, 1417 deletions
diff --git a/kubernetes/Makefile b/kubernetes/Makefile index 4962c825d8..7b19e6e773 100644 --- a/kubernetes/Makefile +++ b/kubernetes/Makefile @@ -51,7 +51,7 @@ package-%: lint-% clean: @rm -f */requirements.lock - @rm -f *tgz */charts/*tgz + @find . -type f -name '*.tgz' -delete @rm -rf $(PACKAGE_DIR)/* # start up a local helm repo to serve up helm chart packages diff --git a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties index 7e94ae4418..e3128b8fa5 100644 --- a/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-resources/resources/config/janusgraph-cached.properties @@ -24,10 +24,10 @@ query.fast-property=true query.smart-limit=false {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} -# the following parameters are not reloaded automatically and require a manual bounce storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}aai-cassandra-{{ $i }},{{- end }} +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} storage.cassandra.keyspace=aaigraph diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties deleted file mode 100644 index 813a263d90..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/aai.properties +++ /dev/null @@ -1,87 +0,0 @@ -################################################################################################################ -############################## ActiveInventoryDataCollector TLS/SSL configuration ############################## -################################################################################################################ - -############################## Networking ############################## -# -# The ip address/hostname and port to the desired AAI instance -# -aai.rest.host=aai.{{.Release.Namespace}} -aai.rest.port=8443 - -############################## REST ############################## -# OXM version -aai.rest.resourceBasePath=/aai/v9 -aai.rest.connectTimeoutInMs=30000 -aai.rest.readTimeoutInMs=60000 -aai.rest.numRequestRetries=5 -# HTTP_NOAUTH - straight HTTP no user/pass -# SSL_BASIC - HTTP/S with user/pass -# SSL_CERT - HTTP/S with client cert -aai.rest.authenticationMode=SSL_BASIC - -############################## Cache ############################## -# Experimental caching feature that is NOT production ready. -# Enable at your own risk... it might not work. -aai.rest.cache.enabled=false -aai.rest.cache.numWorkers=10 -aai.rest.cache.cacheFailures=false -aai.rest.cache.useCacheOnly=false -aai.rest.cache.storageFolderOverride= -aai.rest.cache.maxTimeToLiveInMs=-1 - -# The shallowEntity filter will display the entity in a visualization -# but will not collect it's relationships or complex attributes. -aai.rest.shallowEntities=cloud-region,complex,vnf-image,att-aic,image - -############################## Certs, Auth, and SSL Settings ############################## -aai.ssl.keystore.filename=aai-os-cert.p12 -aai.ssl.keystore.pass=OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o -aai.ssl.keystore.type=pkcs12 -# Enable debug on the SSL connections -aai.ssl.enableDebug=false -# Degree of strictness to SSL connection standards -aai.ssl.validateServerHostName=false; -aai.ssl.validateServerCertificateChain=false; -# If basic auth is implemented, username and password as required -aai.ssl.basicAuth.username=AaiUI -aai.ssl.basicAuth.password=OBF:1gfr1p571unz1p4j1gg7 - -############################## Statistics Report Formatting ############################## -# -# During synchronization, a formatted statisitics log is generated -# -# Response size in bytes histogram -aai.taskProcessor.bytesHistogramLabel="[Response Size In Bytes]" -aai.taskProcessor.bytesHistogramMaxYAxis=1000000 -aai.taskProcessor.bytesHistogramNumBins=20 -aai.taskProcessor.bytesHistogramNumDecimalPoints=2 -# "Work on Hand" statisitcs for external resource requests -aai.taskProcessor.queueLengthHistogramLabel="[Queue Item Length]" -aai.taskProcessor.queueLengthHistogramMaxYAxis=20000 -aai.taskProcessor.queueLengthHistogramNumBins=20 -aai.taskProcessor.queueLengthHistogramNumDecimalPoints=2 -# Time on queue (how long does a task stay on the work queue) -aai.taskProcessor.taskAgeHistogramLabel="[Task Age In Ms]" -aai.taskProcessor.taskAgeHistogramMaxYAxis=600000 -aai.taskProcessor.taskAgeHistogramNumBins=20 -aai.taskProcessor.taskAgeHistogramNumDecimalPoints=2 -# Per transaction response time for external resource requests -aai.taskProcessor.responseTimeHistogramLabel="[Response Time In Ms]" -aai.taskProcessor.responseTimeHistogramMaxYAxis=10000 -aai.taskProcessor.responseTimeHistogramNumBins=20 -aai.taskProcessor.responseTimeHistogramNumDecimalPoints=2 -# Transaction throughput velocity -aai.taskProcessor.tpsHistogramLabel="[Transactions Per Second]" -aai.taskProcessor.tpsHistogramMaxYAxis=100 -aai.taskProcessor.tpsHistogramNumBins=20 -aai.taskProcessor.tpsHistogramNumDecimalPoints=2 - -############################## Deprecated, to be removed or updated ############################## -aai.rest.numResolverWorkers=15 -aai.ssl.truststore.filename=asdc-client.jks -aai.ssl.truststore.type=jks -aai.taskProcessor.maxConcurrentWorkers=5 -aai.taskProcessor.transactionRateControllerEnabled=false -aai.taskProcessor.numSamplesPerThreadForRunningAverage=100 -aai.taskProcessor.targetTPS=100 diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties new file mode 100644 index 0000000000..2315b9f559 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/csp-cookie-filter.properties @@ -0,0 +1,12 @@ +global.login.url=aaiportal.onap.org + +# MOTS ID of the application +application.id=12345 + +# valid domains for open redirect +redirect-domain=domain.com + +# Required by esGateKeeper. Valid values are: +# DEVL - used during development +# PROD - used in production +gatekeeper.environment=TEST
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore Binary files differdeleted file mode 100644 index efa01f8d79..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/inventory-ui-keystore +++ /dev/null diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore Binary files differnew file mode 100644 index 0000000000..9eec841aa2 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/auth/tomcat_keystore diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml new file mode 100644 index 0000000000..e4e02bae94 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-filter-aggregation.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/search/filterAggregation"> + <to uri="bean:aggregateSummaryProcessor?method=getFilteredAggregation"/> + </post> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml new file mode 100644 index 0000000000..20dba6f13c --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-prepareSchema.xml @@ -0,0 +1,11 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/visualization/prepareVisualization"> + <route> + <to uri="bean:schemaVisualizationProcessor?method=processVisualizationRequest" /> + </route> + </post> + </rest> +</rests> + + diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml new file mode 100644 index 0000000000..f6a2953b3a --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-subscriptionService.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <get uri="/subscription/getsubscription"> + <to uri="bean:subscriptionServiceProcessor?method=getSubscription"/> + </get> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml new file mode 100644 index 0000000000..61fd9ad155 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unified-search.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/search/querysearch"> + <to uri="bean:unifiedSearchProcessor?method=search"/> + </post> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml new file mode 100644 index 0000000000..1b975e9dd3 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/camel-rests/sparky-core-unifiedFilterRequest.xml @@ -0,0 +1,7 @@ +<rests xmlns="http://camel.apache.org/schema/spring"> + <rest> + <post uri="/search/unifiedFilterRequest"> + <to uri="bean:filterProcessor?method=getFiltersWithValues"/> + </post> + </rest> +</rests>
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json new file mode 100644 index 0000000000..e72bab0f28 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/descriptors/aaiEntityNodeDescriptors.json @@ -0,0 +1,218 @@ +{ + "generalNodeClass": { + "class": "aai-entity-node general-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "16" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "10" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "33" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }] + }, + "searchedNodeClass": { + "class": "aai-entity-node search-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "16" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "10" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "33" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }] + }, + "selectedSearchedNodeClass": { + "class": "aai-entity-node selected-search-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "31" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "20" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "63" + } + } + }, + { + "type": "button", + "name": "icon_ellipses", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "33", + "y": "-35" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }, + { + "type": "button", + "name": "icon_triangle_warning", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "46", + "y": "-12" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }] + }, + "selectedNodeClass": { + "class": "aai-entity-node selected-node", + "visualElements": [{ + "type": "circle", + "class": "outer", + "svgAttributes": { + "r": "31" + } + }, + { + "type": "circle", + "class": "inner", + "svgAttributes": { + "r": "20" + } + }, + { + "type": "text", + "class": "id-type-label", + "displayKey": "itemType", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "48" + } + } + }, + { + "type": "text", + "class": "id-value-label", + "displayKey": "itemNameValue", + "shapeAttributes": { + "offset": { + "x": "0", + "y": "63" + } + } + }, + { + "type": "button", + "name": "icon_ellipses", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "33", + "y": "-35" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }, + { + "type": "button", + "name": "icon_triangle_warning", + "class": "node-button", + "shapeAttributes": { + "offset": { + "x": "46", + "y": "-12" + } + }, + "svgAttributes": { + "className": "node-button", + "r": "10" + } + }] + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties deleted file mode 100644 index 082744b94e..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/elasticsearch.properties +++ /dev/null @@ -1,72 +0,0 @@ -####################################################################################### -############################## ElasticSearch Config ################################### -####################################################################################### - -############################## Networking ############################## -# -# The ip address/hostname and port to the desired AAI instance -# For development it's recommended to use a local instance of ES -# -elasticsearch.ipAddress=aai-elasticsearch.{{.Release.Namespace}} -elasticsearch.httpPort={{ .Values.config.elasticsearchHttpPort }} -elasticsearch.javaApiPort=8443 - -############################## Indexes ############################## -# -# Index names for various searches. -# -elasticsearch.indexName=entitysearchindex -elasticsearch.topographicalIndexName=topographicalsearchindex -elasticsearch.entityCountHistoryIndexName=entitycounthistoryindex -elasticsearch.autosuggestIndexname=entityautosuggestindex - -# Default document type -elasticsearch.type=default - -############################## Index Mappings and Settings ############################## -# -# JSON files for sparky elasticsearch indexes. -# -elasticsearch.mappingsFileName=/etc/es_mappings.json -elasticsearch.settingsFileName=/etc/es_settings.json -elasticsearch.autosuggestSettingsFileName=/etc/autoSuggestSettings.json -elasticsearch.autosuggestMappingsFileName=/etc/autoSuggestMappings.json -elasticsearch.dynamicMappingsFileName=/etc/dynamicMappings.json -elasticsearch.entityCountHistoryMappingsFileName=/etc/entityCountHistoryMappings.json - -############################## Statistics Report Formatting ############################## -# -# During synchronization, a formatted statisitics log is generated. -# -# Response size in bytes histogram -elasticsearch.taskProcessor.bytesHistogramLabel="[Response Size In Bytes]" -elasticsearch.taskProcessor.bytesHistogramMaxYAxis=1000000 -elasticsearch.taskProcessor.bytesHistogramNumBins=20 -elasticsearch.taskProcessor.bytesHistogramNumDecimalPoints=2 -# "Work on Hand" statisitcs for external resource requests -elasticsearch.taskProcessor.queueLengthHistogramLabel="[Queue Item Length]" -elasticsearch.taskProcessor.queueLengthHistogramMaxYAxis=20000 -elasticsearch.taskProcessor.queueLengthHistogramNumBins=20 -elasticsearch.taskProcessor.queueLengthHistogramNumDecimalPoints=2 -# Time on queue (how long does a task stay on the work queue) -elasticsearch.taskProcessor.taskAgeHistogramLabel="[Task Age In Ms]" -elasticsearch.taskProcessor.taskAgeHistogramMaxYAxis=600000 -elasticsearch.taskProcessor.taskAgeHistogramNumBins=20 -elasticsearch.taskProcessor.taskAgeHistogramNumDecimalPoints=2 -# Per transaction response time for external resource requests -elasticsearch.taskProcessor.responseTimeHistogramLabel="[Response Time In Ms]" -elasticsearch.taskProcessor.responseTimeHistogramMaxYAxis=1000 -elasticsearch.taskProcessor.responseTimeHistogramNumBins=20 -elasticsearch.taskProcessor.responseTimeHistogramNumDecimalPoints=2 -# Transaction throughput velocity -elasticsearch.taskProcessor.tpsHistogramLabel="[Transactions Per Second]" -elasticsearch.taskProcessor.tpsHistogramMaxYAxis=100 -elasticsearch.taskProcessor.tpsHistogramNumBins=20 -elasticsearch.taskProcessor.tpsHistogramNumDecimalPoints=2 - -############################## Deprecated, to be removed or updated ############################## -elasticsearch.taskProcessor.maxConcurrentWorkers=5 -elasticsearch.taskProcessor.transactionRateControllerEnabled=false -elasticsearch.taskProcessor.numSamplesPerThreadForRunningAverage=100 -elasticsearch.taskProcessor.targetTPS=100 -elasticsearch.clusterName=ES_AAI_LOCALHOST diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json new file mode 100644 index 0000000000..62b681139d --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_filters.json @@ -0,0 +1,79 @@ +{ + "filters": [ + { + "filterId": "1", + "filterName": "Orchestration-Status", + "displayName": "Orchestration Status", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Orchestration Status", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "orchestration-status" + } + }, + { + "filterId": "2", + "filterName": "Prov-Status", + "displayName": "Provisioning Status", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Provisioning Status", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "prov-status" + } + }, + { + "filterId": "5", + "filterName": "Date", + "displayName": "Date", + "dataType": "date", + "multiSelect": "false", + "watermark": "Choose Date Range", + "defaultValue" : {"decode": "Today", "code": "last_0_hours"}, + "optionsType": "dynamicOptions", + "optionsValues": [ + {"decode": "Today", "code": "last_0_hours"}, + {"decode": "Since Yesterday", "code": "last_1_days"}, + {"decode": "Since Last Week", "code": "last_1_weeks"}, + {"decode": "Since Last Month", "code": "last_1_months"}, + {"decode": "Since Last Year", "code": "last_1_years"}, + {"decode": "Custom Range", "code": "custom_range"} + ] + }, + { + "filterId": "7", + "filterName": "NF-Type", + "displayName": "Network Function Type", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Network Function Type", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "nf-type" + } + }, + { + "filterId": "8", + "filterName": "NF-Role", + "displayName": "Network Function Role", + "dataType": "dropDown", + "multiSelect": "false", + "watermark": "Any Network Function Role", + "optionsType": "options", + "dataSource": { + "indexName": "aggregate_generic-vnf_index", + "docType": "default", + "fieldName": "nf-role" + } + } + + ] +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json new file mode 100644 index 0000000000..9ca0119dc0 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/aaiui_views.json @@ -0,0 +1,21 @@ +{ + "views": [ + { + "viewName" : "vnfSearch", + "filters" : [ + { + "filterId": "1" + }, + { + "filterId": "2" + }, + { + "filterId": "7" + }, + { + "filterId": "8" + } + ] + } + ] +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json new file mode 100644 index 0000000000..ad2ab7aa5f --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/filters/subscription_object_inspector_mapping.json @@ -0,0 +1,16 @@ +{ + "target": "", + "origin": "", + "messageType": "", + "topic": "", + "message": { + "applicationName": "", + "payload": { + "action": "", + "params": { + "objectName": "", + "externalClassId": "" + } + } + } +} diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml index c1b99c183f..3f96497c60 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/log/logback.xml @@ -1,200 +1,172 @@ -<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="3 seconds" debug="false"> - <!--<jmxConfigurator /> --> - <!-- directory path for all other type logs --> - <property name="logDir" value="/var/log/onap" /> - <property name="componentName" value="AAI-UI" /> - <property name="logDirectory" value="${logDir}/${componentName}" /> - <!-- default eelf log file names --> - <property name="generalLogName" value="application" /> - <property name="errorLogName" value="error" /> - <property name="metricsLogName" value="metrics" /> - <property name="auditLogName" value="audit" /> - <property name="debugLogName" value="debug" /> - <property name="queueSize" value="256" /> - <property name="maxFileSize" value="50MB" /> - <property name="maxHistory" value="30" /> - <property name="totalSizeCap" value="10GB" /> - <property name="pattern" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" /> - - <!-- Example evaluator filter applied against console appender --> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <!-- ============================================================================ --> - <!-- EELF Appenders --> - <!-- ============================================================================ --> - <!-- The EELFAppender is used to record events to the general application - log --> - <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${generalLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender"> - <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>INFO</level> - </filter> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELF" /> - </appender> - <!-- EELF Audit Appender. This appender is used to record audit engine - related logging events. The audit logger and appender are specializations - of the EELF application root logger and appender. This can be used to segregate - Policy engine events from other components, or it can be eliminated to record - these events as part of the application root log. --> - <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${auditLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFAudit" /> - </appender> - <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${metricsLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFMetrics" /> - </appender> - - <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${errorLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> - <level>INFO</level> - </filter> - </appender> - <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFError" /> - </appender> - - <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender"> - <file>${logDirectory}/${debugLogName}.log</file> - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> - <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> - <maxFileSize>${maxFileSize}</maxFileSize> - </timeBasedFileNamingAndTriggeringPolicy> - <maxHistory>${maxHistory}</maxHistory> - <totalSizeCap>${totalSizeCap}</totalSizeCap> - </rollingPolicy> - <encoder> - <pattern>${pattern}</pattern> - </encoder> - </appender> - <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> - <queueSize>${queueSize}</queueSize> - <appender-ref ref="EELFDebug" /> - <includeCallerData>false</includeCallerData> - </appender> - <!-- ============================================================================ --> - <!-- EELF loggers --> - <!-- ============================================================================ --> - <logger name="com.att.eelf" level="INFO" additivity="false" /> - <logger name="org.elasticsearch.plugins" level="WARN" /> - <logger name="com.att.eelf.debug" level="debug" additivity="false"> - <appender-ref ref="asyncEELFDebug" /> - </logger> - <logger name="com.att.eelf.audit" level="info" additivity="false"> - <appender-ref ref="asyncEELFAudit" /> - </logger> - <logger name="com.att.eelf.metrics" level="info" additivity="false"> - <appender-ref ref="asyncEELFMetrics" /> - </logger> - <logger name="com.att.eelf.error" level="info" additivity="false"> - <appender-ref ref="asyncEELFError" /> - </logger> - <!-- Spring related loggers --> - <logger name="org.springframework" level="WARN" /> - <logger name="org.springframework.beans" level="WARN" /> - <logger name="org.springframework.web" level="WARN" /> - <logger name="com.blog.spring.jms" level="WARN" /> - <!-- AJSC Services (bootstrap services) --> - <logger name="ajsc" level="WARN" /> - <logger name="ajsc.RouteMgmtService" level="WARN" /> - <logger name="ajsc.ComputeService" level="WARN" /> - <logger name="ajsc.VandelayService" level="WARN" /> - <logger name="ajsc.FilePersistenceService" level="WARN" /> - <logger name="ajsc.UserDefinedJarService" level="WARN" /> - <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> - <logger name="ajsc.LoggingConfigurationService" level="WARN" /> - <logger name="ajsc.ErrorMessageLookupService" level="WARN" /> - <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet - logging) --> - <logger name="ajsc.utils" level="WARN" /> - <logger name="ajsc.utils.DME2Helper" level="WARN" /> - <logger name="ajsc.filters" level="WARN" /> - <logger name="ajsc.beans.interceptors" level="WARN" /> - <logger name="ajsc.restlet" level="WARN" /> - <logger name="ajsc.servlet" level="WARN" /> - <logger name="com.att" level="WARN" /> - <logger name="com.att.ajsc.csi.logging" level="WARN" /> - <logger name="com.att.ajsc.filemonitor" level="WARN" /> - <!-- Other Loggers that may help troubleshoot --> - <logger name="net.sf" level="WARN" /> - <logger name="org.apache.commons.httpclient" level="WARN" /> - <logger name="org.apache.commons" level="WARN" /> - <logger name="org.apache.coyote" level="WARN" /> - <logger name="org.apache.jasper" level="WARN" /> - <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. - May aid in troubleshooting) --> - <logger name="org.apache.camel" level="WARN" /> - <logger name="org.apache.cxf" level="WARN" /> - <logger name="org.apache.camel.processor.interceptor" level="WARN" /> - <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> - <logger name="org.apache.cxf.service" level="WARN" /> - <logger name="org.restlet" level="WARN" /> - <logger name="org.apache.camel.component.restlet" level="WARN" /> - <!-- logback internals logging --> - <logger name="ch.qos.logback.classic" level="INFO" /> - <logger name="ch.qos.logback.core" level="INFO" /> - <root level="INFO"> - <appender-ref ref="asyncEELFDebug" /> - </root> -</configuration>
\ No newline at end of file + <!--<jmxConfigurator /> --> + <!-- directory path for all other type logs --> + + <property name="logDir" value="/var/log/onap" /> + + <!-- <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" + | "SDNC" | "AC" --> + <property name="componentName" value="AAI-UI"></property> + + <!-- default eelf log file names --> + <property name="generalLogName" value="error" /> + <property name="metricsLogName" value="metrics" /> + <property name="auditLogName" value="audit" /> + <property name="debugLogName" value="debug" /> + + <property name="errorLogPattern" + value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|AAIUI|%mdc{PartnerName}|%logger|%.-5level|%msg%n" /> + <property name="auditMetricPattern" value="%m%n" /> + + <property name="logDirectory" value="${logDir}/${componentName}" /> + + + <!-- Example evaluator filter applied against console appender --> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>${errorLogPattern}</pattern> + </encoder> + </appender> + + <!-- ============================================================================ --> + <!-- EELF Appenders --> + <!-- ============================================================================ --> + + <!-- The EELFAppender is used to record events to the general application + log --> + + <appender name="EELF" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${generalLogName}.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${errorLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender"> + <!-- deny all events with a level below INFO, that is TRACE and DEBUG --> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>INFO</level> + </filter> + <queueSize>256</queueSize> + <appender-ref ref="EELF" /> + </appender> + + + <!-- EELF Audit Appender. This appender is used to record audit engine related + logging events. The audit logger and appender are specializations of the + EELF application root logger and appender. This can be used to segregate + Policy engine events from other components, or it can be eliminated to record + these events as part of the application root log. --> + + <appender name="EELFAudit" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${auditLogName}.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${auditMetricPattern}</pattern> + </encoder> + </appender> + <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFAudit" /> + </appender> + + <appender name="EELFMetrics" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${metricsLogName}.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n"</pattern> --> + <pattern>${auditMetricPattern}</pattern> + </encoder> + </appender> + + + <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFMetrics" /> + </appender> + + <appender name="EELFDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/${debugLogName}.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip + </fileNamePattern> + <maxHistory>60</maxHistory> + </rollingPolicy> + <encoder> + <pattern>${errorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>256</queueSize> + <appender-ref ref="EELFDebug" /> + <includeCallerData>false</includeCallerData> + </appender> + + <!-- ============================================================================ --> + <!-- EELF loggers --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="info" additivity="false"> + <appender-ref ref="asyncEELF" /> + <appender-ref ref="asyncEELFDebug" /> + </logger> + + <logger name="com.att.eelf.audit" level="info" additivity="false"> + <appender-ref ref="asyncEELFAudit" /> + </logger> + <logger name="com.att.eelf.metrics" level="info" additivity="false"> + <appender-ref ref="asyncEELFMetrics" /> + </logger> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + + <!-- Sparky loggers --> + <logger name="org.onap" level="INFO" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <root> + <appender-ref ref="asyncEELF" /> + <!-- <appender-ref ref="asyncEELFDebug" /> --> + </root> + +</configuration> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/BOOT-INF/classes/portal.properties index 04a19555e2..3d4ec09887 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal.properties +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/BOOT-INF/classes/portal.properties @@ -1,9 +1,9 @@ -###################################################################################### -############################## eCOMP Portal properties ############################### -###################################################################################### +################################################################################ +############################## Portal properties ############################### +################################################################################ # Java class that implements the ECOMP role and user mgt API -portal.api.impl.class = org.openecomp.sparky.security.portal.PortalRestAPIServiceImpl +portal.api.impl.class = org.onap.aai.sparky.security.portal.PortalRestAPIServiceImpl # Instance of ECOMP Portal where the app has been on-boarded # use insecure http for dev purposes to avoid self-signed certificate @@ -20,4 +20,4 @@ csp_gate_keeper_prod_key = PROD # Toggles use of UEB ueb_listeners_enable = false # IDs application withing UEB flow -ueb_app_key = qFKles9N8gDTV0Zc +ueb_app_key = qFKles9N8gDTV0Zc diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties index 0873fc1c61..a0e3308435 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/portal-authentication.properties @@ -1,14 +1,14 @@ -########################################################################################## -############################## eCOMP Portal Auth Properties ############################## -########################################################################################## - -############################## Auth ############################## -username=aaiui -password=1t2v1vfv1unz1vgz1t3b - -############################## ############################## -# -# ONAP Cookie Processing - During initial development, this flag, if true, will -# prevent the portal interface's login processing from searching for a user -# specific cookie, and will instead allow passage if a valid session cookie is discovered. -onap_enabled=true
\ No newline at end of file +#####################################################################################
+############################## Portal Auth Properties ##############################
+#####################################################################################
+
+############################## Auth ##############################
+username={{.Values.config.portalUsername}}
+password={{.Values.config.portalPassword}}
+
+############################## ##############################
+#
+# ONAP Cookie Processing - During initial development, this flag, if true, will
+# prevent the portal interface's login processing from searching for a user
+# specific cookie, and will instead allow passage if a valid session cookie is discovered.
+onap_enabled={{.Values.config.portalOnapEnabled}}
diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config new file mode 100644 index 0000000000..b8313bd378 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/portal/roles.config @@ -0,0 +1,6 @@ +[ + { + "id":1, + "name":"View" + } +]
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config b/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config index b8313bd378..4d5d43e2ce 100644 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/roles.config @@ -1,6 +1,6 @@ -[ - { - "id":1, - "name":"View" - } +[
+ {
+ "id":1,
+ "name":"View"
+ }
]
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json new file mode 100644 index 0000000000..78576172fb --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestMappings.json @@ -0,0 +1,10 @@ +{ + "properties" : { + "entity_suggest" : { + "type" : "completion", + "payloads" : true, + "analyzer" : "custom_analyzer", + "preserve_position_increments": false + } + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json new file mode 100644 index 0000000000..4525be12fc --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/autoSuggestSettings.json @@ -0,0 +1,21 @@ +{ + "analysis": { + "filter": { + "eng_stop": { + "type": "stop", + "stopwords": "_english_" + } + }, + "analyzer": { + "custom_analyzer": { + "type": "custom", + "tokenizer": "standard", + "filter": [ + "lowercase", + "asciifolding", + "eng_stop" + ] + } + } + } + }
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json new file mode 100644 index 0000000000..09a00acdf6 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/dynamicMappings.json @@ -0,0 +1,14 @@ +{ + "dynamic_templates": [ + { + "strings": { + "match_mapping_type": "string", + "match": "*", + "mapping": { + "type": "string", + "index": "not_analyzed" + } + } + } + ] +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json new file mode 100644 index 0000000000..84e3aec4c7 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/entityCountHistoryMappings.json @@ -0,0 +1,16 @@ +{ + "properties": { + "count": { + "type": "long" + }, + "entityType": { + "type": "string", + "index": "not_analyzed" + }, + "timestamp": { + "type": "date", + "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ" + } + } +} + diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json new file mode 100644 index 0000000000..216e3d96b6 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_mappings.json @@ -0,0 +1,32 @@ +{ + "properties": { + "entityType": { + "type": "string", + "analyzer": "ngram_analyzer", + "search_analyzer": "ngram_analyzer" + }, + "entityPrimaryKeyValue": { + "type": "string", + "index": "not_analyzed" + }, + "searchTagIDs": { + "type": "string" + }, + "searchTags": { + "type": "string", + "analyzer": "ngram_analyzer" + }, + "crossEntityReferenceValues": { + "type": "string", + "analyzer": "ngram_analyzer" + }, + "link": { + "type": "string", + "index": "not_analyzed" + }, + "lastmodTimestamp": { + "type": "date", + "format": "MMM d y HH:m:s||dd-MM-yyyy HH:mm:ss||yyyy-MM-dd'T'HH:mm:ss.SSSZZ||yyyy-MM-dd HH:mm:ss||MM/dd/yyyy||yyyyMMdd'T'HHmmssZ" + } + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json new file mode 100644 index 0000000000..21a357c615 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/schemas/es_settings.json @@ -0,0 +1,36 @@ +{ + "analysis": { + "filter": { + "ngram_filter": { + "type": "nGram", + "min_gram": 1, + "max_gram": 50, + "token_chars": [ + "letter", + "digit", + "punctuation", + "symbol" + ] + } + }, + "analyzer": { + "ngram_analyzer": { + "type": "custom", + "tokenizer": "whitespace", + "filter": [ + "lowercase", + "asciifolding", + "ngram_filter" + ] + }, + "whitespace_analyzer": { + "type": "custom", + "tokenizer": "whitespace", + "filter": [ + "lowercase", + "asciifolding" + ] + } + } + } +}
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties deleted file mode 100644 index f28047333a..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/search-service.properties +++ /dev/null @@ -1,32 +0,0 @@ -######################################################################################## -############################## Search Data Service Config ############################## -######################################################################################## - -############################## Networking ############################## -# -# The ip address/hostname and port to the desired Search Data Service instance -# -search-service.ipAddress=aai-search-data.{{.Release.Namespace}} -search-service.httpPort=9509 - -############################## Indexes ############################## -# -# Index values that will be associated with searches -# -# Searchable entities -search-service.indexName=entitysearchindex -# Inventory searches -search-service.topographicalIndexName=topographicalsearchindex -search-service.entityCountHistoryIndexName=entitycounthistoryindex - -############################## Version ############################## -# -# Search Data Service version and type (see Search Data Service for more details) -# -search-service.version=v1 -search-service.type=default - -############################## Certs ############################## -search-service.ssl.cert-name=client-cert-onap.p12 -search-service.ssl.keystore-password=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 -search-service.ssl.keystore=tomcat_keystore diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties new file mode 100644 index 0000000000..b246676fa7 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-application.properties @@ -0,0 +1,11 @@ +camel.springboot.name = SparkyCamelContext +#camel.springboot.xmlRoutes = file:${CONFIG_HOME}/camel-routes/*.route +camel.springboot.xmlRests = file:${CONFIG_HOME}/camel-rests/*.xml + +camel.component.servlet.mapping.context-path=/rest/* +server.servlet.context-path=/services/aai/webapp/ + +# +# attempt to externalize ui JS classes + resources +# +spring.resources.static-locations=file:${APP_HOME}/static/ diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties new file mode 100644 index 0000000000..f81a5976ef --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-http-config.properties @@ -0,0 +1 @@ +server.port = 9517
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties new file mode 100644 index 0000000000..b9e5d16aac --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/sparky-ssl-config.properties @@ -0,0 +1,3 @@ +server.port = 8000 +server.ssl.key-store=file:${CONFIG_HOME}/auth/tomcat_keystore +server.ssl.key-alias=tomcat
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml new file mode 100644 index 0000000000..694ea1bf0f --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-aggregateVnfSearchProvider.xml @@ -0,0 +1,33 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="aggregateVnfSearchProvider" + class="org.onap.aai.sparky.aggregatevnf.search.AggregateVnfSearchProvider"> + <constructor-arg ref="searchServiceAdapter"/> + <constructor-arg name="autoSuggestIndexName" value="entityautosuggestindex"/> + <constructor-arg name="vnfSearchSuggestionRoute" value="vnfSearch"/> + </bean> + + <bean id="aggregateSummaryProcessor" + class="org.onap.aai.sparky.aggregatevnf.search.AggregateSummaryProcessor"> + <constructor-arg ref="elasticSearchAdapter"/> + <constructor-arg ref="filtersConfig"/> + <property name="vnfAggregationIndexName" value="aggregate_generic-vnf_index"/> + </bean> + + <bean id="registerAggregateVnfSearchProvider" + class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> + <property name="targetObject" ref="searchProviderRegistry"/> + <property name="targetMethod"> + <value>addSearchProviders</value> + </property> + <property name="arguments"> + <list value-type="org.onap.aai.sparky.search.api.SearchProvider"> + <ref bean="aggregateVnfSearchProvider"/> + </list> + </property> + </bean> +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml new file mode 100644 index 0000000000..8b5f27727d --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-apigw.xml @@ -0,0 +1,31 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="synapseRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="aai.synapse.simpledemo.openecomp.org" /> + <property name="endpointServerPort" value="9502" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_CERT" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="certFileName" value="/auth/client-cert-onap.p12" /> + <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + + </bean> + + <bean id="aaiuiProxyProcessor" + class="org.onap.aai.sparky.dal.proxy.processor.AaiUiProxyProcessor"> + <constructor-arg ref="synapseRestEndpointConfig" /> + <constructor-arg name="apiGatewayEndpoint" value="ui-request" /> + </bean> + +</beans> + + diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml new file mode 100644 index 0000000000..dedd7e2d16 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-gizmo.xml @@ -0,0 +1,29 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="gizmoRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.gizmo.serviceName}}.{{.Release.Namespace}}" /> + <property name="endpointServerPort" value="9520" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_CERT" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="certFileName" value="/auth/client-cert-onap.p12" /> + <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="gizmoAdapter" class="org.onap.aai.sparky.dal.GizmoAdapter"> + <constructor-arg ref="oxmModelLoader" /> + <constructor-arg ref="gizmoRestEndpointConfig" /> + <property name="relationshipsBasePath" value="/services/inventory/relationships/v13/" /> + <property name="inventoryBasePath" value="/services/inventory/v13/" /> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml new file mode 100644 index 0000000000..0763f94cd1 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-sync.xml @@ -0,0 +1,373 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="elasticSearchSchemaFactory" class="org.onap.aai.sparky.sync.ElasticSearchSchemaFactory"> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + + <bean id="elasticSearchRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.aaiElasticsearch.serviceName}}.{{.Release.Namespace}}" /> + <property name="endpointServerPort" value="9200" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="HTTP_NOAUTH" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + </bean> + + <bean id="elasticSearchAdapter" class="org.onap.aai.sparky.dal.ElasticSearchAdapter"> + <constructor-arg ref="elasticSearchRestEndpointConfig" /> + </bean> + + <bean id="elasticSearchNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig"> + <property name="numSamplesPerThreadForRunningAverage" value="100" /> + <property name="bytesHistogramLabel" value="[Response Size In Bytes]" /> + <property name="bytesHistogramMaxYAxis" value="1000000" /> + <property name="bytesHistogramNumBins" value="20" /> + <property name="bytesHistogramNumDecimalPoints" value="2" /> + <property name="queueLengthHistogramLabel" value="[Queue Item Length]" /> + <property name="queueLengthHistogramMaxYAxis" value="20000" /> + <property name="queueLengthHistogramNumBins" value="20" /> + <property name="queueLengthHistogramNumDecimalPoints" value="2" /> + <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" /> + <property name="taskAgeHistogramMaxYAxis" value="600000" /> + <property name="taskAgeHistogramNumBins" value="20" /> + <property name="taskAgeHistogramNumDecimalPoints" value="2" /> + <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" /> + <property name="responseTimeHistogramMaxYAxis" value="1000" /> + <property name="responseTimeHistogramNumBins" value="20" /> + <property name="responseTimeHistogramNumDecimalPoints" value="2" /> + <property name="tpsHistogramLabel" value="[Transactions Per Second]" /> + <property name="tpsHistogramMaxYAxis" value="100" /> + <property name="tpsHistogramNumBins" value="20" /> + <property name="tpsHistogramNumDecimalPoints" value="2" /> + </bean> + + <bean id="aaiNetworkStatConfig" class="org.onap.aai.sparky.sync.config.NetworkStatisticsConfig"> + <property name="numSamplesPerThreadForRunningAverage" value="100" /> + <property name="bytesHistogramLabel" value="[Response Size In Bytes]" /> + <property name="bytesHistogramMaxYAxis" value="1000000" /> + <property name="bytesHistogramNumBins" value="20" /> + <property name="bytesHistogramNumDecimalPoints" value="2" /> + <property name="queueLengthHistogramLabel" value="[Queue Item Length]" /> + <property name="queueLengthHistogramMaxYAxis" value="20000" /> + <property name="queueLengthHistogramNumBins" value="20" /> + <property name="queueLengthHistogramNumDecimalPoints" value="2" /> + <property name="taskAgeHistogramLabel" value="[Task Age In Ms]" /> + <property name="taskAgeHistogramMaxYAxis" value="600000" /> + <property name="taskAgeHistogramNumBins" value="20" /> + <property name="taskAgeHistogramNumDecimalPoints" value="2" /> + <property name="responseTimeHistogramLabel" value="[Response Time In Ms]" /> + <property name="responseTimeHistogramMaxYAxis" value="10000" /> + <property name="responseTimeHistogramNumBins" value="20" /> + <property name="responseTimeHistogramNumDecimalPoints" value="2" /> + <property name="tpsHistogramLabel" value="[Transactions Per Second]" /> + <property name="tpsHistogramMaxYAxis" value="100" /> + <property name="tpsHistogramNumBins" value="20" /> + <property name="tpsHistogramNumDecimalPoints" value="2" /> + </bean> + + <bean id="aaiRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.aai.serviceName}}" /> + <property name="endpointServerPort" value="8443" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_BASIC" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="basicAuthUserName" value="AaiUI" /> + <property name="basicAuthPassword" value="OBF:1gfr1p571unz1p4j1gg7" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="activeInventoryAdapter" class="org.onap.aai.sparky.dal.ActiveInventoryAdapter"> + <constructor-arg ref="oxmModelLoader" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="aaiRestEndpointConfig" /> + </bean> + + <bean id="syncControllerRegistry" class="org.onap.aai.sparky.sync.SyncControllerRegistry" /> + + <bean id="elasticSearchEndpointConfig" + class="org.onap.aai.sparky.sync.config.ElasticSearchEndpointConfig"> + <property name="esIpAddress" value="{{.Values.global.aaiElasticsearch.serviceName}}.{{.Release.Namespace}}" /> + <property name="esServerPort" value="9200" /> + <property name="scrollContextTimeToLiveInMinutes" value="5" /> + <property name="scrollContextBatchRequestSize" value="5000" /> + </bean> + + <bean id="aggregationSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + <property name="controllerName" value="Aggregation-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="aggregationSyncControllerFactory" + class="org.onap.aai.sparky.aggregation.sync.AggregationSyncControllerFactory" + init-method="registerController"> + + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aggregationSyncControllerConfig" /> + <constructor-arg ref="syncControllerRegistry" /> + <constructor-arg ref="suggestionEntityLookup" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="esAdapter" ref="elasticSearchAdapter" /> + <property name="esStatConfig" ref="elasticSearchNetworkStatConfig" /> + + <property name="aaiAdapter" ref="activeInventoryAdapter" /> + <property name="aaiStatConfig" ref="aaiNetworkStatConfig" /> + + <property name="aggregationEntityToIndexMap"> + <map> + <entry key="generic-vnf" value="aggregate_generic-vnf_index" /> + </map> + </property> + + <property name="indexNameToSchemaConfigMap"> + <map> + <entry key="aggregate_generic-vnf_index"> + <bean class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="aggregate_generic-vnf_index" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" /> + </bean> + </entry> + </map> + </property> + + </bean> + + + <bean id="historicalEntitySyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Historical-Entity-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="historicalEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entitycounthistoryindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/entityCountHistoryMappings.json" /> + <property name="indexSettingsFileName" value="/schemas/es_settings.json" /> + </bean> + + <bean id="historicalEntitySyncController" + class="org.onap.aai.sparky.aggregation.sync.HistoricalEntitySyncController" + init-method="registerController"> + + <constructor-arg ref="historicalEntitySyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="historicalEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg value="60" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="searchableEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + + + <bean id="autoSuggestionSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Auto-Suggestion-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="autoSuggestionEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entityautosuggestindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" /> + <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" /> + </bean> + + <bean id="autoSuggestionEntitySyncController" + class="org.onap.aai.sparky.autosuggestion.sync.AutoSuggestionSyncController" + init-method="registerController"> + + <constructor-arg ref="autoSuggestionSyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="autoSuggestionEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="suggestionEntityLookup" /> + <constructor-arg ref="filtersConfig" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + + + <bean id="vnfAliasSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Vnf-Alias-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="vnfAliasEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entityautosuggestindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/autoSuggestMappings.json" /> + <property name="indexSettingsFileName" value="/schemas/autoSuggestSettings.json" /> + </bean> + + <bean id="vnfAliasSyncController" + class="org.onap.aai.sparky.autosuggestion.sync.VnfAliasSyncController" + init-method="registerController"> + + <constructor-arg ref="vnfAliasSyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="vnfAliasEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="filtersConfig" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + <bean id="geoSyncControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="Geo-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="geoEntitySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="topographicalsearchindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/dynamicMappings.json" /> + </bean> + + <bean id="geoSyncController" + class="org.onap.aai.sparky.topology.sync.GeoSyncController" + init-method="registerController"> + + <constructor-arg ref="geoSyncControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="geoEntitySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="geoEntityLookup" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + <bean id="viewInspectControllerConfig" class="org.onap.aai.sparky.sync.config.SyncControllerConfig"> + + <property name="controllerName" value="View-Inspect-Sync-Controller" /> + <property name="enabled" value="true" /> + <property name="syncTaskDelayInMs" value="5000" /> + <property name="syncTaskFrequencyInDays" value="1" /> + <property name="numSyncControllerWorkers" value="2" /> + <property name="runOnceSyncEnabled" value="true" /> + <property name="periodicSyncEnabled" value="false" /> + <property name="numInternalSyncWorkers" value="2" /> + <property name="numSyncElasticWorkers" value="5" /> + <property name="numSyncActiveInventoryWorkers" value="5" /> + <property name="targetSyncStartTimeStamp" value="05:00:00 UTC+00:00" /> + </bean> + + <bean id="viewInspectySchemaConfig" class="org.onap.aai.sparky.sync.config.ElasticSearchSchemaConfig"> + <property name="indexName" value="entitysearchindex" /> + <property name="indexDocType" value="default" /> + <property name="indexMappingsFileName" value="/schemas/es_mappings.json" /> + <property name="indexSettingsFileName" value="/schemas/es_settings.json" /> + </bean> + + + <bean id="viewInspectSyncController" + class="org.onap.aai.sparky.viewinspect.sync.ViewInspectSyncController" + init-method="registerController"> + + <constructor-arg ref="viewInspectControllerConfig" /> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="viewInspectySchemaConfig" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="aaiNetworkStatConfig" /> + <constructor-arg ref="elasticSearchNetworkStatConfig" /> + <constructor-arg ref="crossEntityReferenceLookup" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="searchableEntityLookup" /> + <constructor-arg ref="elasticSearchSchemaFactory" /> + + <property name="syncControllerRegistry" ref="syncControllerRegistry" /> + + </bean> + + <bean id="syncControllerService" class="org.onap.aai.sparky.sync.SyncControllerService" + destroy-method="shutdown"> + <constructor-arg ref="syncControllerRegistry" /> + <constructor-arg value="5" /> + <constructor-arg value="5" /> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml new file mode 100644 index 0000000000..c146e6ef2b --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspect.xml @@ -0,0 +1,55 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="visualizationConfigurations" + class="org.onap.aai.sparky.viewandinspect.config.VisualizationConfigs"> + <property name="maxSelfLinkTraversalDepth" value="2" /> + <property name="visualizationDebugEnabled" value="false" /> + <property name="aaiEntityNodeDescriptors" value="/descriptors/aaiEntityNodeDescriptors.json" /> + <property name="generalNodeClassName" value="generalNodeClass" /> + <property name="searchNodeClassName" value="searchedNodeClass" /> + <property name="selectedSearchedNodeClassName" value="selectedSearchedNodeClass" /> + <property name="numOfThreadsToFetchNodeIntegrity" value="20" /> + <property name="makeAllNeighborsBidirectional" value="false" /> + <property name="gizmoEnabled" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + + <property name="shallowEntities"> + <list value-type="java.lang.String"> + <value>cloud-region</value> + <value>complex</value> + <value>vnf-image</value> + <value>image</value> + <value>flavor</value> + <value>availability-zone</value> + <value>tenant</value> + <value>network-profile</value> + <value>l-interface</value> + </list> + </property> + + </bean> + + <bean id="baseVisualizationService" + class="org.onap.aai.sparky.viewandinspect.services.BaseVisualizationService"> + <constructor-arg ref="oxmModelLoader"/> + <constructor-arg ref="visualizationConfigurations"/> + <constructor-arg ref="activeInventoryAdapter" /> + <constructor-arg ref="gizmoAdapter" /> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg ref="elasticSearchEndpointConfig" /> + <constructor-arg ref="viewInspectySchemaConfig" /> + <constructor-arg name="numActiveInventoryWorkers" value="50" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="subscriptionConfig" /> + </bean> + + <bean id="schemaVisualizationProcessor" + class="org.onap.aai.sparky.viewandinspect.SchemaVisualizationProcessor"> + <property name="visualizationService" ref="baseVisualizationService" /> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml new file mode 100644 index 0000000000..072c935574 --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core-viewInspectSearchProvider.xml @@ -0,0 +1,34 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="viewInspectSearchProvider" + class="org.onap.aai.sparky.viewandinspect.search.ViewInspectSearchProvider"> + <constructor-arg ref="searchServiceAdapter" /> + <constructor-arg ref="suggestiveSearchConfigs" /> + <constructor-arg name="viewInspectIndexName" value="entitysearchindex" /> + <constructor-arg name="viewInspectSuggestionRoute" value="schema" /> + <constructor-arg ref="oxmEntityLookup" /> + + <property name="additionalSearchSuggestionText"> + <value>Schema</value> + </property> + + </bean> + + <bean id="registerViewInspectSearchProvider" + class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> + <property name="targetObject" ref="searchProviderRegistry" /> + <property name="targetMethod"> + <value>addSearchProviders</value> + </property> + <property name="arguments"> + <list value-type="org.onap.aai.sparky.search.api.SearchProvider"> + <ref bean="viewInspectSearchProvider" /> + </list> + </property> + </bean> + +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml new file mode 100644 index 0000000000..8f5d42d25a --- /dev/null +++ b/kubernetes/aai/charts/aai-sparky-be/resources/config/spring-beans/sparky-core.xml @@ -0,0 +1,241 @@ +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans.xsd"> + + <bean id="searchServiceRestEndpointConfig" class="org.onap.aai.sparky.dal.rest.config.RestEndpointConfig"> + <property name="endpointIpAddress" value="{{.Values.global.searchData.serviceName}}.{{.Release.Namespace}}" /> + <property name="endpointServerPort" value="9509" /> + <property name="numRequestRetries" value="5" /> + <property name="restAuthenticationMode" value="SSL_CERT" /> + <property name="connectTimeoutInMs" value="60000" /> + <property name="readTimeoutInMs" value="30000" /> + <property name="certFileName" value="/auth/client-cert-onap.p12" /> + <property name="certPassword" value="OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10" /> + <property name="truststoreFileName" value="/auth/inventory-ui-keystore" /> + <property name="validateServerCertChain" value="false" /> + <property name="validateServerHostname" value="false" /> + <property name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="searchServiceAdapter" class="org.onap.aai.sparky.search.SearchServiceAdapter"> + <constructor-arg ref="searchServiceRestEndpointConfig" /> + <constructor-arg name="serviceApiVersion" value="v1" /> + </bean> + + <bean id="filtersConfig" class="org.onap.aai.sparky.search.filters.config.FiltersConfig"> + <constructor-arg name="filtersFileName" value="/filters/aaiui_filters.json" /> + <constructor-arg name="viewsFileName" value="/filters/aaiui_views.json" /> + <constructor-arg name="resourceLoader" ref="sparkyResourceLoader" /> + </bean> + + <bean id="crossEntityReferenceLookup" + class="org.onap.aai.sparky.config.oxm.CrossEntityReferenceLookup" /> + + <bean id="geoEntityLookup" class="org.onap.aai.sparky.config.oxm.GeoEntityLookup" /> + + <bean id="oxmEntityLookup" class="org.onap.aai.sparky.config.oxm.OxmEntityLookup" /> + + <bean id="searchableEntityLookup" class="org.onap.aai.sparky.config.oxm.SearchableEntityLookup" /> + + <bean id="suggestionEntityLookup" class="org.onap.aai.sparky.config.oxm.SuggestionEntityLookup"> + <constructor-arg ref="filtersConfig" /> + </bean> + + <bean id="oxmModelProcessorSet" class="org.springframework.beans.factory.config.SetFactoryBean"> + <property name="targetSetClass" value="java.util.HashSet" /> + <property name="sourceSet"> + <set> + <ref bean="crossEntityReferenceLookup" /> + <ref bean="geoEntityLookup" /> + <ref bean="oxmEntityLookup" /> + <ref bean="searchableEntityLookup" /> + <ref bean="suggestionEntityLookup" /> + </set> + </property> + </bean> + + <bean id="oxmModelLoader" class="org.onap.aai.sparky.config.oxm.OxmModelLoader" init-method="loadLatestOxmModel"> + <!-- the int argument is the latestVersionOverride. -1 disables the override --> + <constructor-arg type="int" value="-1" /> + <constructor-arg ref="oxmModelProcessorSet" /> + </bean> + + <bean id="searchProviderRegistry" + class="org.onap.aai.sparky.search.registry.SearchProviderRegistry" /> + + <bean id="sparkyResourceLoader" class="org.onap.aai.sparky.config.SparkyResourceLoader"> + <property name="configHomeEnvVar" value="CONFIG_HOME" /> + </bean> + + <bean id="filterElasticSearchAdapter" + class="org.onap.aai.sparky.search.filters.FilterElasticSearchAdapter"> + <constructor-arg ref="elasticSearchAdapter" /> + </bean> + + <bean id="filteredSearchHelper" class="org.onap.aai.sparky.search.filters.FilteredSearchHelper" > + <constructor-arg ref="filtersConfig" /> + <constructor-arg ref="filterElasticSearchAdapter" /> + </bean> + + <bean id="filterProcessor" class="org.onap.aai.sparky.search.filters.FilterProcessor" > + <property name="filteredSearchHelper" ref="filteredSearchHelper" /> + </bean> + + <bean id="unifiedSearchProcessor" class="org.onap.aai.sparky.search.UnifiedSearchProcessor"> + <property name="searchProviderRegistry" ref="searchProviderRegistry" /> + </bean> + + <bean id="entityCountHistoryProcessor" class="org.onap.aai.sparky.search.EntityCountHistoryProcessor"> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg name="entityTypesToSummarizeDelimitedList" + value="customer,service-instance,complex,pserver,vserver,vnf" /> + <constructor-arg name="vnfEntityTypesDelimitedList" + value="vnf,newvce,vce,vpe" /> + <constructor-arg name="entityCountHistoryIndexName" + value="entitycounthistoryindex" /> + </bean> + + <bean id="attributeUpdater" + class="org.onap.aai.sparky.editattributes.AttributeUpdater"> + <constructor-arg ref="oxmModelLoader" /> + <constructor-arg ref="oxmEntityLookup" /> + <constructor-arg ref="activeInventoryAdapter" /> + </bean> + + <bean id="attributeEditProcessor" + class="org.onap.aai.sparky.editattributes.AttributeEditProcessor"> + <constructor-arg ref="attributeUpdater" /> + </bean> + + <bean id="geoVisualizationProcessor" class="org.onap.aai.sparky.inventory.GeoVisualizationProcessor"> + <constructor-arg ref="elasticSearchAdapter" /> + <constructor-arg name="topographicalSearchIndexName" + value="topographicalsearchindex" /> + </bean> + + <bean id = "pairingHashMap" class="org.springframework.beans.factory.config.MapFactoryBean"> + <property name="targetMapClass"> + <value>java.util.HashMap</value> + </property> + <property name="sourceMap"> + <map key-type="java.lang.String" value-type="java.lang.String" > + <entry key="volume-group-id" value="called" /> + <entry key="volume-group-name" value="called" /> + <entry key="physical-location-id" value="called" /> + <entry key="data-center-code" value="called" /> + <entry key="complex-name" value="called" /> + <entry key="tenant-id" value="called" /> + <entry key="tenant-name" value="called" /> + <entry key="vserver-id" value="called" /> + <entry key="vserver-name" value="called" /> + <entry key="vserver-name2" value="called" /> + <entry key="hostname" value="called" /> + <entry key="pserver-name2" value="called" /> + <entry key="pserver-id" value="called" /> + <entry key="global-customer-id" value="called" /> + <entry key="subscriber-name" value="called" /> + <entry key="service-instance-id" value="called" /> + <entry key="service-instance-name" value="called" /> + <entry key="link-name" value="called" /> + <entry key="vpn-id" value="called" /> + <entry key="vpn-name" value="called" /> + <entry key="vpe-id" value="called" /> + <entry key="vnf-id" value="called" /> + <entry key="vnf-name" value="called" /> + <entry key="vnf-name2" value="called" /> + <entry key="vnfc-name" value="called" /> + <entry key="network-id" value="called" /> + <entry key="network-name" value="called" /> + <entry key="network-policy-id" value="called" /> + <entry key="vf-module-id" value="called" /> + <entry key="vf-module-name" value="called" /> + <entry key="vnf-id2" value="called" /> + <entry key="pnf-name" value="called" /> + <entry key="circuit-id" value="called" /> + <entry key="id" value="called" /> + <entry key="group-id" value="called" /> + <entry key="group-name" value="called" /> + <entry key="street1" value="at" /> + <entry key="street2" value="at" /> + <entry key="code" value="at" /> + <entry key="ipv4-oam-address" value="at" /> + <entry key="network-policy-fqdn" value="at" /> + </map> + </property> + </bean> + + <bean id="suggestiveSearchConfigs" class="org.onap.aai.sparky.search.config.SuggestionConfig"> + <property name="defaultPairingValue" value="with" /> + <property name="pairingList" ref="pairingHashMap"></property> + <property name="stopWords"> + <list value-type="java.lang.String"> + <value>a</value> + <value>an</value> + <value>and</value> + <value>are</value> + <value>as</value> + <value>at</value> + <value>be</value> + <value>but</value> + <value>by</value> + <value>called</value> + <value>for</value> + <value>if</value> + <value>in</value> + <value>into</value> + <value>is</value> + <value>it</value> + <value>no</value> + <value>not</value> + <value>of</value> + <value>on</value> + <value>or</value> + <value>such</value> + <value>that</value> + <value>the</value> + <value>their</value> + <value>then</value> + <value>there</value> + <value>these</value> + <value>they</value> + <value>this</value> + <value>to</value> + <value>was</value> + <value>will</value> + <value>with</value> + </list> + </property> + + </bean> + + <bean id="subscriptionConfig" + class="org.onap.aai.sparky.subscription.config.SubscriptionConfig"> + <property name="subscriptionTarget" value="" /> + <property name="subscriptionOrigin" value="" /> + <property name="subscriptionMessageType" value="" /> + <property name="subscriptionTopic" value="" /> + <property name="launchOITarget" value="" /> + <property name="launchOIOrigin" value="" /> + <property name="launchOIMessageType" value="" /> + <property name="launchOITopic" value="" /> + <property name="annEntitiyTypes"> + <list value-type="java.lang.String"> + <value>pserver</value> + <value>pnf</value> + </list> + </property> + <property name="isLaunchOIEnabled" value="false" /> + </bean> + + <bean id="subscriptionService" + class="org.onap.aai.sparky.subscription.services.SubscriptionService"> + <constructor-arg ref="subscriptionConfig" /> + </bean> + + <bean id="subscriptionServiceProcessor" + class="org.onap.aai.sparky.subscription.SubscriptionServiceProcessor"> + <constructor-arg ref="subscriptionService" /> + </bean> +</beans> diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties deleted file mode 100644 index b82baffc14..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/suggestive-search.properties +++ /dev/null @@ -1,27 +0,0 @@ -###################################################################################### -############################## Suggestive Search Config ############################## -###################################################################################### - -# Indexes to be taken into account when generating suggestion entries -suggestion.indexes=elasticsearch.autosuggestIndexname,elasticsearch.indexName -# List of stop words to be used during suggestive search -suggestion.stopwords=a,an,and,are,as,at,be,but,by,called,for,if,in,into,is,it,no,not,of,on,or,such,that,the,their,then,there,these,they,this,to,was,will,with -# Assigns which class, within sparky, will process the searches related to an assosiated index -suggestion.routing=elasticsearch.autosuggestIndexname:SearchServiceWrapper,elasticsearch.indexName:VnfSearchService - -############################## Pairings ############################## -# -# "called" pairings, keys reference types within the OXM, and the value -# is the suggestion term used for matches with any of the "called" keys. -# e.g. "x called vserver-id" (but actual value of vserver-id) -suggestion.pairing.called.key=volume-group-id,volume-group-name,physical-location-id,data-center-code,complex-name,tenant-id,tenant-name,vserver-id,vserver-name,vserver-name2,hostname,pserver-name2,pserver-id,global-customer-id,subscriber-name,service-instance-id,service-instance-name,link-name,vpn-id,vpn-name,vpe-id,vnf-id,vnf-name,vnf-name2,vnfc-name,network-id,network-name,network-policy-id,vf-module-id,vf-module-name,vnf-id2,pnf-name,circuit-id -suggestion.pairing.called.value=called -# -# Exact same explanation as the "called" pairings above. -# e.g. "x at ipv4-oam-address" -suggestion.pairing.at.key=street1,street2,postal-code,ipv4-oam-address,network-policy-fqdn -suggestion.pairing.at.value=at -# -# Default pairing values for any OXM types that aren't part of the the other -# pairing lists. -suggestion.pairing.default.value=with
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties b/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties deleted file mode 100644 index 0b84f06abe..0000000000 --- a/kubernetes/aai/charts/aai-sparky-be/resources/config/synchronizer.properties +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################################## -############################## ElasticSearchSynchronizer Config ############################## -############################################################################################## - -# Initial delay on startup before starting synchronization tasks -synchronizer.syncTask.initialDelayInMs=60000 -# The frequency at which the synchronizationtask will be run -synchronizer.syncTask.taskFrequencyInDay=2 - -# Time at which to run synchronization. Format = hh:mm:ss UTC(-/+)hh:mm -synchronizer.syncTask.startTimestamp=05:00:00 UTC+00:00 - -# Generates a count in elasticsearch related to inventory -synchronizer.historicalEntitySummarizerEnabled=true -# Toggles the suggestion synchronizer -synchronizer.autosuggestSynchronizationEnabled=true -# Frequency at which above count is generated -synchronizer.historicalEntitySummarizedFrequencyInMinutes=60 - -# Elasticsearch scroll api context keep alive value -synchronizer.scrollContextTimeToLiveInMinutes=5 -# Elasticsearch scroll api context max items per batch request -synchronizer.numScrollContextItemsToRetrievePerRequest=5000 - - -############################## Deprecated, to be removed or updated ############################## -synchronizer.resolver.progressLogFrequencyInMs=60000 -synchronizer.resolver.queueMonitorFrequencyInMs=1000 -synchronizer.resolver.displayVerboseQueueManagerStats=false -synchronizer.indexIntegrityValidator.enabled=false -synchronizer.indexIntegrityValidatorFrequencyInMs=3600000 -synchronizer.suppressResourceNotFoundErrors=true -synchronizer.applyNodesOnlyModifier=false
\ No newline at end of file diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml index d827c4eb36..1f6ed74029 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/configmap.yaml @@ -20,4 +20,53 @@ metadata: name: {{ include "common.fullname" . }}-log namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/log/logback.xml").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/log/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-camel-rests + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/camel-rests/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-descriptors + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/descriptors/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-filters + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/filters/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-schemas + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/schemas/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-spring-beans + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/spring-beans/*").AsConfig . | indent 2 }} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "common.fullname" . }}-boot-inf + namespace: {{ include "common.namespace" . }} +data: +{{ tpl (.Files.Glob "resources/config/portal/BOOT-INF/classes/*").AsConfig . | indent 2 }} + diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml index 05a808e805..424cf1155d 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/deployment.yaml @@ -34,77 +34,62 @@ spec: release: {{ .Release.Name }} name: {{ include "common.name" . }} spec: - initContainers: - - name: {{ include "common.name" . }}-inject-models - command: - - /bin/bash - - "-c" - - | - git clone -b {{ .Values.config.gerritBranch }} --single-branch {{ .Values.config.gerritProject }} /tmp/gerrit - cp -rp /tmp/gerrit/data-router/appconfig/model/* /model-dir - image: "{{ .Values.global.repository | default .Values.dockerHubRepository }}/{{ .Values.ubuntuInitImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - volumeMounts: - - name: modeldir - mountPath: "/model-dir" containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} env: - name: CONFIG_HOME - value: /opt/app/sparky/config/ - - name: KEY_MANAGER_PASSWORD - value: {{ .Values.config.keyManagerPassword }} - - name: KEY_STORE_PASSWORD + value: /opt/app/sparky/appconfig/ + - name: KEYSTORE_ALIAS_PASSWORD + value: {{ .Values.config.keystoreAliasPassword }} + - name: KEYSTORE_PASSWORD value: {{ .Values.config.keyStorePassword }} + - name: SPARKY_SSL_ENABLED + value: 'true' + - name: SPARKY_PORTAL_ENABLED + value: 'false' volumeMounts: - mountPath: /etc/localtime name: localtime readOnly: true - - mountPath: /opt/app/sparky/config/auth/ + - mountPath: /opt/app/sparky/appconfig/auth/ name: {{ include "common.fullname" . }}-auth-config - - mountPath: /opt/app/sparky/config/synchronizer.properties - subPath: synchronizer.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/suggestive-search.properties - subPath: suggestive-search.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/search-service.properties - subPath: search-service.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/roles.config - subPath: roles.config + - mountPath: /opt/app/sparky/appconfig/camel-rests/ + name: {{ include "common.fullname" . }}-camel-rests-config + - mountPath: /opt/app/sparky/appconfig/descriptors/ + name: {{ include "common.fullname" . }}-descriptors-config + - mountPath: /opt/app/sparky/appconfig/filters/ + name: {{ include "common.fullname" . }}-filters-config + - mountPath: /opt/app/sparky/appconfig/ name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/elasticsearch.properties - subPath: elasticsearch.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/aai.properties - subPath: aai.properties - name: {{ include "common.fullname" . }}-config - - mountPath: /opt/app/sparky/config/portal/ + - mountPath: /opt/app/sparky/appconfig/portal name: {{ include "common.fullname" . }}-portal-config + - mountPath: /opt/app/sparky/appconfig/portal/BOOT-INF/classes + name: {{ include "common.fullname" . }}-portal-boot-inf-config + - mountPath: /opt/app/sparky/appconfig/schemas + name: {{ include "common.fullname" . }}-schemas-config + - mountPath: /opt/app/sparky/appconfig/spring-beans/ + name: {{ include "common.fullname" . }}-spring-beans-config - mountPath: /var/log/onap name: {{ include "common.fullname" . }}-logs - - mountPath: /opt/app/sparky/bundleconfig/etc/logback.xml + - mountPath: /opt/app/sparky/appconfig/logging/ name: {{ include "common.fullname" . }}-log-conf - subPath: logback.xml - - name: modeldir - mountPath: /opt/app/sparky/config/model ports: - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} # disable liveness probe when breakpoints set in debugger # so K8s doesn't restart unresponsive container {{- if eq .Values.liveness.enabled true }} livenessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.service.internalPort2 }} initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} periodSeconds: {{ .Values.liveness.periodSeconds }} {{ end -}} readinessProbe: tcpSocket: - port: {{ .Values.service.internalPort }} + port: {{ .Values.service.internalPort2 }} initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} periodSeconds: {{ .Values.readiness.periodSeconds }} resources: @@ -138,12 +123,30 @@ spec: - name: {{ include "common.fullname" . }}-config configMap: name: {{ include "common.fullname" . }} - - name: {{ include "common.fullname" . }}-portal-config - configMap: - name: {{ include "common.fullname" . }}-portal - name: {{ include "common.fullname" . }}-auth-config secret: secretName: {{ include "common.fullname" . }} + - name: {{ include "common.fullname" . }}-camel-rests-config + configMap: + name: {{ include "common.fullname" . }}-camel-rests + - name: {{ include "common.fullname" . }}-descriptors-config + configMap: + name: {{ include "common.fullname" . }}-descriptors + - name: {{ include "common.fullname" . }}-filters-config + configMap: + name: {{ include "common.fullname" . }}-filters + - name: {{ include "common.fullname" . }}-portal-config + configMap: + name: {{ include "common.fullname" . }}-portal + - name: {{ include "common.fullname" . }}-portal-boot-inf-config + configMap: + name: {{ include "common.fullname" . }}-boot-inf + - name: {{ include "common.fullname" . }}-schemas-config + configMap: + name: {{ include "common.fullname" . }}-schemas + - name: {{ include "common.fullname" . }}-spring-beans-config + configMap: + name: {{ include "common.fullname" . }}-spring-beans - name: filebeat-conf configMap: name: aai-filebeat @@ -153,9 +156,7 @@ spec: emptyDir: {} - name: {{ include "common.fullname" . }}-log-conf configMap: - name: {{ include "common.fullname" . }}-log - - name: modeldir - emptyDir: {} + name: {{ include "common.fullname" . }}-log restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml b/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml index 41bc163696..e97935aedd 100644 --- a/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/templates/service.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "common.name" . }} + name: {{ include "common.servicename" . }} namespace: {{ include "common.namespace" . }} labels: app: {{ include "common.name" . }} diff --git a/kubernetes/aai/charts/aai-sparky-be/values.yaml b/kubernetes/aai/charts/aai-sparky-be/values.yaml index df058a4af2..5c97bdb6eb 100644 --- a/kubernetes/aai/charts/aai-sparky-be/values.yaml +++ b/kubernetes/aai/charts/aai-sparky-be/values.yaml @@ -4,11 +4,18 @@ global: # global defaults nodePortPrefix: 302 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== - + aai: + serviceName: aai-aai + aaiElasticsearch: + serviceName: aai-elasticsearch + gizmo: + serviceName: aai-gizmo + searchData: + serviceName: aai-search-data # application image repository: nexus3.onap.org:10001 -image: onap/sparky-be:v1.1.0 +image: onap/sparky-be:1.2-STAGING-latest pullPolicy: Always restartPolicy: Always @@ -18,10 +25,17 @@ ubuntuInitImage: oomk8s/ubuntu-init:2.0.0 config: elasticsearchHttpPort: 9200 keyStorePassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o - keyManagerPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o + keystoreAliasPassword: OBF:1i9a1u2a1unz1lr61wn51wn11lss1unz1u301i6o gerritBranch: master gerritProject: http://gerrit.onap.org/r/aai/test-config + portalUsername: aaiui + portalPassword: 1t2v1vfv1unz1vgz1t3b +# ONAP Cookie Processing - During initial development, the following flag, if true, will +# prevent the portal interface's login processing from searching for a user +# specific cookie, and will instead allow passage if a valid session cookie is discovered. + portalOnapEnabled: true +# # override chart name (sparky-be) to share a common namespace # suffix with parent chart (aai) @@ -51,6 +65,7 @@ service: type: ClusterIP name: aai-sparky-be internalPort: 9517 + internalPort2: 8000 ingress: enabled: false diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties index 7e94ae4418..e3128b8fa5 100644 --- a/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties +++ b/kubernetes/aai/charts/aai-traversal/resources/config/janusgraph-cached.properties @@ -24,10 +24,10 @@ query.fast-property=true query.smart-limit=false {{- $seed_size := default 1 .Values.global.cassandra.replicas | int -}} +{{- $global := . }} -# the following parameters are not reloaded automatically and require a manual bounce storage.backend=cassandra -storage.hostname={{- range $i, $e := until $seed_size }}aai-cassandra-{{ $i }},{{- end }} +storage.hostname={{- range $i, $e := until $seed_size }}{{ $global.Release.Name }}-aai-cassandra-{{ $i }},{{- end }} storage.cassandra.keyspace=aaigraph diff --git a/kubernetes/aai/charts/aai-traversal/templates/job.yaml b/kubernetes/aai/charts/aai-traversal/templates/job.yaml index c15c05398f..b9b2501304 100644 --- a/kubernetes/aai/charts/aai-traversal/templates/job.yaml +++ b/kubernetes/aai/charts/aai-traversal/templates/job.yaml @@ -90,14 +90,6 @@ spec: subPath: aai_keystore # disable liveness probe when breakpoints set in debugger # so K8s doesn't restart unresponsive container - volumeMounts: - - mountPath: /usr/share/filebeat/filebeat.yml - subPath: filebeat.yml - name: filebeat-conf - - mountPath: /opt/aai/logroot/AAI-GQ - name: {{ include "common.fullname" . }}-logs - - mountPath: /usr/share/filebeat/data - name: {{ include "common.fullname" . }}-filebeat volumes: - name: localtime hostPath: diff --git a/kubernetes/aai/values.yaml b/kubernetes/aai/values.yaml index 5d08268e88..e8798186ed 100644 --- a/kubernetes/aai/values.yaml +++ b/kubernetes/aai/values.yaml @@ -27,7 +27,33 @@ global: # global defaults loggingImage: beats/filebeat:5.5.0 restartPolicy: Always cassandra: + serviceName: aai-cassandra replicas: 3 + aai: + serviceName: aai-aai + babel: + serviceName: aai-babel + champ: + serviceName: aai-champ + aaiElasticsearch: + serviceName: aai-elasticsearch + hbase: + serviceName: aai-hbase + resources: + serviceName: aai-resources + sparkyBe: + serviceName: aai-sparky-be + dataRouter: + serviceName: aai-data-router + gizmo: + serviceName: aai-gizmo + modelloader: + serviceName: aai-modelloader + searchData: + serviceName: aai-search-data + traversal: + serviceName: aai-traversal + # application image dockerhubRepository: registry.hub.docker.com diff --git a/kubernetes/clamp/templates/configmap.yaml b/kubernetes/clamp/templates/configmap.yaml index b680487fc0..bee8f132ea 100644 --- a/kubernetes/clamp/templates/configmap.yaml +++ b/kubernetes/clamp/templates/configmap.yaml @@ -23,4 +23,4 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} data: - spring_application_json: {{ .Values.config.springApplicationJson | quote }} + spring_application_json: {{ tpl .Values.config.springApplicationJson . | quote }} diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml index eef4dd7e65..827b5d99cc 100644 --- a/kubernetes/clamp/values.yaml +++ b/kubernetes/clamp/values.yaml @@ -42,17 +42,17 @@ config: dataRootDir: /dockerdata-nfs springApplicationJson: > { - "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clamp-mariadb.{{include "common.namespace" .}}:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3", - "clamp.config.sdc.catalog.url": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/sdc/v1/catalog/", - "clamp.config.sdc.hostUrl": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/", - "clamp.config.sdc.serviceUrl": "https://sdc-be.{{include "common.namespace" .}}.svc.cluster.local:8443/sdc/v1/catalog/services", + "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://mariadb:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3", + "clamp.config.sdc.catalog.url": "https://sdc-be:8443/sdc/v1/catalog/", + "clamp.config.sdc.hostUrl": "https://sdc-be:8443/", + "clamp.config.sdc.serviceUrl": "https://sdc-be:8443/sdc/v1/catalog/services", "clamp.config.sdc.serviceUsername": "clamp", "clamp.config.sdc.servicePassword": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981", - "clamp.config.dcae.inventory.url": "http://dcaegen2.{{include "common.namespace" .}}.svc.cluster.local:8080", - "clamp.config.dcae.dispatcher.url": "http://dcaegen2.{{include "common.namespace" .}}.svc.cluster.local:8080", - "clamp.config.policy.pdpUrl1": "https://policy-pdp.{{include "common.namespace" .}}.svc.cluster.local:9091/pdp/ , testpdp, alpha123", - "clamp.config.policy.pdpUrl2": "https://policy-pdp.{{include "common.namespace" .}}.svc.cluster.local:9091/pdp/ , testpdp, alpha123", - "clamp.config.policy.papUrl": "https://policy-pap.{{include "common.namespace" .}}.svc.cluster.local:8443/pap/ , testpap, alpha123", + "clamp.config.dcae.inventory.url": "http://dcaegen2:8080", + "clamp.config.dcae.dispatcher.url": "http://dcaegen2:8080", + "clamp.config.policy.pdpUrl1": "https://policy-pdp:9091/pdp/ , testpdp, alpha123", + "clamp.config.policy.pdpUrl2": "https://policy-pdp:9091/pdp/ , testpdp, alpha123", + "clamp.config.policy.papUrl": "https://policy-pap:8443/pap/ , testpap, alpha123", "clamp.config.policy.clientKey": "5CE79532B3A2CB4D132FC0C04BF916A7" } @@ -70,7 +70,7 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 30 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container diff --git a/kubernetes/consul/charts/consul-server/templates/deployment.yaml b/kubernetes/consul/charts/consul-server/templates/deployment.yaml index d14c42bf19..12403e77c9 100644 --- a/kubernetes/consul/charts/consul-server/templates/deployment.yaml +++ b/kubernetes/consul/charts/consul-server/templates/deployment.yaml @@ -35,7 +35,7 @@ spec: name: {{ include "common.name" . }} spec: containers: - - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}" + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" command: ["/usr/local/bin/docker-entrypoint.sh"] - args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect=3","-ui","-join","{{ include "common.servicename" . }}.{{ include "common.namespace" . }}"] + args: ["agent","-server","-client","0.0.0.0","-enable-script-checks","-bootstrap-expect={{ .Values.replicaCount }}","-ui"] name: {{ include "common.name" . }} diff --git a/kubernetes/consul/charts/consul-server/values.yaml b/kubernetes/consul/charts/consul-server/values.yaml index 406f9b634e..081ba2a240 100644 --- a/kubernetes/consul/charts/consul-server/values.yaml +++ b/kubernetes/consul/charts/consul-server/values.yaml @@ -16,7 +16,6 @@ ################################################################# global: nodePortPrefix: 302 - repository: nexus3.onap.org:10001 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s readinessImage: readiness-check:2.0.0 @@ -34,7 +33,7 @@ pullPolicy: Always # flag to enable debugging - application support required debugEnabled: false -replicaCount: 3 +replicaCount: 1 nodeSelector: {} @@ -42,14 +41,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 service: diff --git a/kubernetes/consul/templates/deployment.yaml b/kubernetes/consul/templates/deployment.yaml index 504d54cc54..646922b30f 100644 --- a/kubernetes/consul/templates/deployment.yaml +++ b/kubernetes/consul/templates/deployment.yaml @@ -35,7 +35,7 @@ spec: name: {{ include "common.name" . }} spec: containers: - - image: "{{ .Values.repository | default .Values.global.repository }}/{{ .Values.image }}" + - image: "{{ include "common.repository" . }}/{{ .Values.image }}" command: - /bin/sh - "-c" diff --git a/kubernetes/consul/values.yaml b/kubernetes/consul/values.yaml index b35ec35cf4..6ff0390991 100644 --- a/kubernetes/consul/values.yaml +++ b/kubernetes/consul/values.yaml @@ -16,7 +16,6 @@ ################################################################# global: nodePortPrefix: 302 - repository: nexus3.onap.org:10001 repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s readinessImage: readiness-check:2.0.0 @@ -47,14 +46,14 @@ affinity: {} # probe configuration parameters liveness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 # necessary to disable liveness probe when setting breakpoints # in debugger so K8s doesn't restart unresponsive container enabled: true readiness: - initialDelaySeconds: 10 + initialDelaySeconds: 90 periodSeconds: 10 service: {} diff --git a/kubernetes/dcaegen2/Makefile b/kubernetes/dcaegen2/Makefile new file mode 100644 index 0000000000..c16f23be28 --- /dev/null +++ b/kubernetes/dcaegen2/Makefile @@ -0,0 +1,2 @@ +make-dmaap: + cd charts && helm dep up dcae-bootstrap diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml index d031e2e890..9f53d90c06 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/requirements.yaml @@ -20,3 +20,6 @@ dependencies: - name: common version: ~2.0.0 repository: '@local' + - name: postgres + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml index 6205f1ed38..dac0ffa207 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_engine-inputs.yaml @@ -23,6 +23,6 @@ "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}", "dcae_CL_publish_url": "http://{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}:3904/events/unauthenticated.DCAE_CL_OUTPUT", "ves_fault_publish_url": "http://{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT", - "pgaas_cluster_name" : "pgvm", + "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}", "database_name":"holmes" } diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml index 75dbbf9805..1a808d4eb7 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-holmes_rules-input.yaml @@ -18,6 +18,6 @@ { "msb_hostname": "{{ .Values.config.address.msb_discovery }}.{{include "common.namespace" . }}", - "pgaas_cluster_name" : "pgvm", + "pgaas_cluster_name" : "{{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }}", "database_name":"holmes" } diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml index 4e42b11208..8b5da2efe6 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-inventory-inputs.yaml @@ -16,12 +16,12 @@ # limitations under the License. # ============LICENSE_END========================================================= -sdc_config.address: '{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443' +sdc_address: '{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443' sdc_uri: 'https://{{ .Values.config.address.sdc }}.{{include "common.namespace" . }}:8443' sdc_user: "dcae" sdc_password: !!str Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U sdc_environment_name: "AUTO" -sdc_msg_bus_config.address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}' +sdc_msg_bus_address: '{{ .Values.config.address.message_router }}.{{include "common.namespace" . }}' postgres_user_inventory: "postgres" postgres_password_inventory: "onap123" service_change_handler_image: {{ .Values.componentImages.service_change_handler }} diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml new file mode 100644 index 0000000000..b201247136 --- /dev/null +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-pgaas-initdb-inputs.yaml @@ -0,0 +1,19 @@ +#================================================================================= +# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. +# Copyright © 2018 Amdocs, Bell Canada +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= + +k8s_pgaas_instance_fqdn: {{ .Values.postgres.service.name2 }}.{{include "common.namespace" . }} +k8s_initial_password: {{ .Values.postgres.config.pgRootPassword }} diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml index 7dc66f40c3..f3a6ccaad8 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-tca-inputs.yaml @@ -22,3 +22,7 @@ tca_image: {{ .Values.componentImages.tca }} dmaap_host: {{ .Values.config.address.message_router }}.{{include "common.namespace" . }} consul_host: {{ .Values.config.address.consul.host }}.{{include "common.namespace" . }} cbs_host: config-binding-service +enableRedisCaching: {{ .Values.config.redisCaching }} +{{ if .Values.config.redisHosts }} +redisHosts: {{ .Values.config.redisHosts }} +{{ end }} diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml index 5385d07dde..2e41d1c4b3 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/resources/inputs/k8s-ves-inputs.yaml @@ -19,7 +19,7 @@ {{ if .Values.componentImages.ves }} tag_version: {{ .Values.componentImages.ves }} {{ end }} -external_port : "30280" +external_port : "30235" ves_other_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_OTHER_OUTPUT/" ves_heartbeat_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT/" ves_fault_publish_url: "http://{{ .Values.config.address.message_router }}:3904/events/unauthenticated.SEC_FAULT_OUTPUT/" diff --git a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml b/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml index fc89c6c459..6df05b1452 100644 --- a/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml +++ b/kubernetes/dcaegen2/charts/dcae-bootstrap/values.yaml @@ -40,17 +40,34 @@ config: msb_discovery: msb-discovery policy_pdp: pdp sdc: sdc-be + # redisCaching is a string not a boolean! + redisCaching: "false" + +# postgres values--overriding defaults in the postgres subchart +postgres: + nameOverride: dcae-db + service: + name: dcae-postgres + name2: dcae-pg-primary + name3: dcae-pg-replica + container: + name: + primary: dcae-pg-primary + replica: dcae-pg-replica + config: + pgPrimaryPassword: onapdemodb + pgRootPassword: onapdemodb # application image repository: nexus3.onap.org:10001 -image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.5 +image: onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container:1.1.8 # DCAE component images to be deployed via Cloudify Manager # Use to override default setting in blueprints componentImages: #TODO for further investigation: input template expansion issues if we comment this out - config_binding_service: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding:2.1.4 + config_binding_service: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding:2.1.5 # deployment_handler: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.deployment-handler:2.1.1 # holmes_engine: nexus3.onap.org:10001//onap/holmes/engine-management:v1.0.0 # holmes_rules: nexus3.onap.org:10001/onap/holmes/rule-management:v1.0.0 diff --git a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml index c6b24ee22f..4b76523c57 100644 --- a/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml +++ b/kubernetes/dcaegen2/charts/dcae-cloudify-manager/templates/service.yaml @@ -63,4 +63,13 @@ spec: type: ExternalName externalName: {{ .Values.service.name }}.{{ include "common.namespace" . }}.svc.cluster.local {{ end }} - +# Provide alternate name for consul in common namespace to support CM plugin discovery +apiVersion: v1 +kind: Service +metadata: + name: consul + namespace: {{ include "common.namespace" . }} +spec: + type: ExternalName + externalName: {{ .Values.config.address.consul.host }}.{{ include "common.namespace" . }}.svc.cluster.local +--- diff --git a/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml b/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml index 770f82d2b3..4c01d4eca2 100644 --- a/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml +++ b/kubernetes/dcaegen2/charts/dcae-healthcheck/Chart.yaml @@ -17,5 +17,5 @@ apiVersion: v1 description: ONAP DCAE Health Check -name: dcae-healtcheck +name: dcae-healthcheck version: 2.0.0 diff --git a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh b/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh index 3431e7e6e7..f4547525c9 100755 --- a/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh +++ b/kubernetes/dcaegen2/charts/dcae-redis/resources/redis/scripts/redis-cluster-config.sh @@ -15,8 +15,9 @@ # limitations under the License. # ============LICENSE_END========================================================= - -if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then +(if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then + echo "delay by 10 seconds for redis server starting" + sleep 10 NODES="" echo "====> wait for all {{.Values.replicaCount}} redis pods up" @@ -24,11 +25,16 @@ if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then do echo "======> $(echo $NODES |wc -w) / {{.Values.replicaCount}} pods up" sleep 5 - RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) + RESP=$(wget -vO- --ca-certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt --header "Authorization +: Bearer $(</var/run/secrets/kubernetes.io/serviceaccount/token)" https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT +_443_TCP_PORT/api/v1/namespaces/{{.Release.Namespace}}/pods?labelSelector=app={{.Chart.Name}}) IPS=$(echo $RESP | jq -r '.items[].status.podIP') + IPS2=$(echo $IPS | sed -e 's/[a-zA-Z]*//g') + echo "======> IPs: ["$IPS2"]" NODES="" - for I in $IPS; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done + for I in $IPS2; do NODES="$NODES $I:{{.Values.service.externalPort}}"; done + echo "======> nodes: ["$NODES"]" done echo "====> all {{.Values.replicaCount}} redis cluster pods are up. wait 10 seconds before the next step"; echo sleep 10 @@ -36,6 +42,9 @@ if [[ "$HOSTNAME" == *{{.Chart.Name}}-0 ]]; then echo "====> Configure the cluster" # $NODES w/o quotes + echo "======> nodes: [$(echo $NODES |paste -s)]" redis-trib create --replicas 1 $(echo $NODES |paste -s) +fi ) & + +redis-server /conf/redis.conf -fi diff --git a/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml b/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml index 472471416b..63d921aa8b 100644 --- a/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml +++ b/kubernetes/dcaegen2/charts/dcae-redis/templates/statefulset.yaml @@ -41,8 +41,7 @@ spec: - /bin/sh - -c - | - /opt/scripts/redis-cluster-config.sh & - /usr/local/bin/redis-server-config.sh + /opt/scripts/redis-cluster-config.sh ports: - containerPort: {{ .Values.service.internalPort }} name: {{ .Values.service.name }} diff --git a/kubernetes/dmaap/Makefile b/kubernetes/dmaap/Makefile new file mode 100644 index 0000000000..36ca4f5a9f --- /dev/null +++ b/kubernetes/dmaap/Makefile @@ -0,0 +1,16 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +make-dmaap: + cd charts && helm dep up dmaap-bus-controller diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore b/kubernetes/dmaap/charts/dmaap-bus-controller/.helmignore new file mode 100644 index 0000000000..f0c1319444 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/.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/dmaap/charts/dmaap-bus-controller/Chart.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/Chart.yaml new file mode 100644 index 0000000000..430b7d13c3 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/Chart.yaml @@ -0,0 +1,18 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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: a Helm chart to deploy ONAP DMaaP Bus Controller (aka dmaap-prov) in Kubernetes +name: dmaap-bus-controller +version: 2.0.0 diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/README.md b/kubernetes/dmaap/charts/dmaap-bus-controller/README.md new file mode 100644 index 0000000000..c696a2c361 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/README.md @@ -0,0 +1,11 @@ +# Helm Chart for ONAP DMaaP Applications + +ONAP includes the following Kubernetes services available in ONAP Beijing Release (more expected in future): + +1) message-router - a message bus for applications +2) dmaap-prov - an API to provision DMaaP resources + +# Service Dependencies + +message-router depends on AAF +dmaap-prov depends on AAF and Postgresql. diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml new file mode 100644 index 0000000000..b67ac02eca --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/requirements.yaml @@ -0,0 +1,21 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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 + repository: '@local' + - name: postgres + version: ~2.0.0 + repository: '@local' diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env b/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env new file mode 100644 index 0000000000..6b15db9ced --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/resources/config/buscontroller.env @@ -0,0 +1,14 @@ +DMAAPBC_WAIT_TO_EXIT=Y +DMAAPBC_PG_ENABLED=true +# Need to connect to PG primary service, designated by service.name2 +DMAAPBC_PGHOST={{ .Values.postgres.service.name2 }} +DMAAPBC_PGDBNAME={{ .Values.postgres.config.pgDatabase }} +DMAAPBC_PGCRED={{ .Values.postgres.config.pgUserPassword }} +DMAAPBC_PGUSER={{ .Values.postgres.config.pgUserName }} +DMAAPBC_MR_CNAME={{ .Values.dmaapMessageRouterService }} +DMAAPBC_AAF_URL={{ .Values.aafURL }} +DMAAPBC_TOPICMGR_USER={{ .Values.topicMgrUser }} +DMAAPBC_TOPICMGR_PWD={{ .Values.topicMgrPwd }} +DMAAPBC_ADMIN_USER={{ .Values.adminUser }} +DMAAPBC_ADMIN_PWD={{ .Values.adminPwd }} + diff --git a/kubernetes/dmaap/templates/NOTES.txt b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt index 33b47cfc02..fbab5a3758 100644 --- a/kubernetes/dmaap/templates/NOTES.txt +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/NOTES.txt @@ -4,16 +4,16 @@ http://{{ . }} {{- end }} {{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov) - export NODE_IP=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath="{.items[0].status.addresses[0].address}") + export NODE_PORT=$(kubectl get --namespace {{ include "common.namespace" . }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "common.name" . }}-prov) + export NODE_IP=$(kubectl get nodes --namespace {{ include "common.namespace" . }} -o jsonpath="{.items[0].status.addresses[0].address}") echo http://$NODE_IP:$NODE_PORT {{- else if contains "LoadBalancer" .Values.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running 'kubectl get svc -w {{ include "common.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + export SERVICE_IP=$(kubectl get svc --namespace {{ include "common.namespace" . }} {{ include "common.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') echo http://$SERVICE_IP:{{ .Values.service.externalPort }} {{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "so.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export POD_NAME=$(kubectl get pods --namespace {{ include "common.namespace" . }} -l "app={{ template "common.name" . }},release={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }} {{- end }} diff --git a/kubernetes/dmaap/templates/configmap.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/configmap.yaml index 0d6a348249..1ed749593f 100644 --- a/kubernetes/dmaap/templates/configmap.yaml +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/configmap.yaml @@ -15,7 +15,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ include "common.fullname" . }}-configmap - namespace: {{ .Values.global.nsPrefix }} + name: {{ include "common.fullname" . }}-config + namespace: {{ include "common.namespace" . }} data: -{{ tpl (.Files.Glob "resources/config/buscontroller.env").AsConfig . | indent 2 }} +{{ tpl (.Files.Glob "resources/config/*").AsConfig . | indent 2 }} diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml new file mode 100644 index 0000000000..2c38792c87 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/deployment.yaml @@ -0,0 +1,94 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ include "common.name" . }} + release: {{ .Release.Name }} + spec: + initContainers: + - command: + - /root/ready.py + args: + - --container-name + - {{ .Values.postgres.nameOverride }} + env: + - name: NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }}-readiness + containers: + - name: {{ include "common.name" . }} + image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + ports: + - containerPort: {{ .Values.service.internalPort }} + - containerPort: {{ .Values.service.internalPort2 }} + {{if eq .Values.liveness.enabled true }} + livenessProbe: + httpGet: + port: {{ .Values.service.internalPort }} + path: /webapi/info + initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} + periodSeconds: {{ .Values.liveness.periodSeconds }} + readinessProbe: + httpGet: + port: {{ .Values.service.internalPort }} + path: /webapi/info + initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} + periodSeconds: {{ .Values.readiness.periodSeconds }} + {{ end -}} + volumeMounts: + - mountPath: /etc/localtime + name: localtime + readOnly: true + - name: {{ include "common.name" . }}-config + mountPath: /opt/app/config/conf + subPath: buscontroller.env + resources: +{{ toYaml .Values.resources | indent 12 }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 10 }} + {{- end -}} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 10 }} + {{- end }} + volumes: + - name: localtime + hostPath: + path: /etc/localtime + - name: {{ include "common.name" . }}-config + configMap: + name: {{ include "common.fullname" . }}-config + imagePullSecrets: + - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml new file mode 100644 index 0000000000..2660052ffb --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/templates/service.yaml @@ -0,0 +1,47 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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 +kind: Service +metadata: + name: {{ .Values.service.name }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + type: {{ .Values.service.type }} + ports: + {{if eq .Values.service.type "NodePort" -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.service.nodePort2 }} + name: {{ .Values.service.name }}2 + {{- else -}} + - port: {{ .Values.service.externalPort }} + targetPort: {{ .Values.service.internalPort }} + name: {{ .Values.service.name }} + - port: {{ .Values.service.externalPort2 }} + targetPort: {{ .Values.service.internalPort2 }} + name: {{ .Values.service.name }}2 + {{- end}} + selector: + app: {{ include "common.name" . }} + release: {{ .Release.Name }}
\ No newline at end of file diff --git a/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml b/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml new file mode 100644 index 0000000000..3acb490e57 --- /dev/null +++ b/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml @@ -0,0 +1,113 @@ +# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# +# 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. + +################################################################# +# Global configuration defaults. +################################################################# +global: + nodePortPrefix: 302 + repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== + readinessRepository: oomk8s + readinessImage: readiness-check:1.1.1 + loggingRepository: docker.elastic.co + loggingImage: beats/filebeat:5.5.0 + +################################################################# +# Application configuration defaults. +################################################################# +#nsPrefix: onap +pullPolicy: Always + +# application images +repository: nexus3.onap.org:10001 + +image: + buscontrollerImage: onap/dmaap/buscontroller + buscontrollerVersion: 1.0.8 + + +# application configuration +dmaapMessageRouterService: dmaap +aafURL: https://onap-aaf:8905/proxy/ +topicMgrUser: m23456@dmaapbc.onap.org +topicMgrPwd: onapdemo +adminUser: m12345@dmaapbc.onap.org +adminPwd: onapdemo + +nodeSelector: {} + +affinity: {} + +# probe configuration parameters +liveness: + initialDelaySeconds: 10 + periodSeconds: 10 + # necessary to disable liveness probe when setting breakpoints + # in debugger so K8s doesn't restart unresponsive container + enabled: false + +readiness: + initialDelaySeconds: 10 + periodSeconds: 10 + + +service: + type: ClusterIP + name: dmaap-bc + externalPort: 8080 + internalPort: 8080 + externalPort2: 8443 + internalPort2: 8443 + + +# application configuration override for postgres +postgres: + nameOverride: dbcl-db + service: + name: dbcl-postgres + name2: dbcl-pg-primary + name3: dbcl-pg-replica + container: + name: + primary: dbcl-pg-primary + replica: dbcl-pg-replica + config: + pgUserName: dmaap_admin + pgDatabase: dmaap + pgPrimaryPassword: onapdemodb + pgUserPassword: onapdemodb + pgRootPassword: onapdemodb + + +ingress: + enabled: false + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # + # Example: + # Configure resource requests and limits + # ref: http://kubernetes.io/docs/user-guide/compute-resources/ + # Minimum memory for development is 2 CPU cores and 4GB memory + # Minimum memory for production is 4 CPU cores and 8GB memory +#resources: +# limits: +# cpu: 2 +# memory: 4Gi +# requests: +# cpu: 2 +# memory: 4Gi diff --git a/kubernetes/dmaap/charts/postgresql/Chart.yaml b/kubernetes/dmaap/charts/postgresql/Chart.yaml deleted file mode 100644 index c64338735a..0000000000 --- a/kubernetes/dmaap/charts/postgresql/Chart.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: postgresql -version: 0.9.3 -description: Object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance. -keywords: -- postgresql -- postgres -- database -- sql -home: https://www.postgresql.org/ -icon: https://www.postgresql.org/media/img/about/press/elephant.png -sources: -- https://github.com/kubernetes/charts -- https://github.com/docker-library/postgres -maintainers: -- name: databus23 -engine: gotpl diff --git a/kubernetes/dmaap/charts/postgresql/templates/Notes.txt b/kubernetes/dmaap/charts/postgresql/templates/Notes.txt deleted file mode 100644 index 9b49bb2982..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/Notes.txt +++ /dev/null @@ -1,35 +0,0 @@ -# PostgreSQL can be accessed via port 5432 on the following DNS name from within your cluster: -# {{ template "postgresql.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local -# -# To get your user password run: -# -# PGPASSWORD=$(kubectl get secret --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath="{.data.postgres-password}" | base64 --decode; echo) -# -# To connect to your database run the following command (using the env variable from above): -# -# kubectl run --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }}-client --restart=Never --rm --tty -i --image postgres \ -# --env "PGPASSWORD=$PGPASSWORD" \{{- if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} -# --labels="{{ template "postgresql.fullname" . }}-client=true" \{{- end }} -# --command -- psql -U {{ default "postgres" .Values.postgresUser }} \ -# -h {{ template "postgresql.fullname" . }} {{ default "postgres" .Values.postgresDatabase }} -# -# {{ if and (.Values.networkPolicy.enabled) (not .Values.networkPolicy.allowExternal) }} -# Note: Since NetworkPolicy is enabled, only pods with label -# {{ template "postgresql.fullname" . }}-client=true" -# will be able to connect to this PostgreSQL cluster. -# {{- end }} -# -# To connect to your database directly from outside the K8s cluster: -# {{- if contains "NodePort" .Values.service.type }} -# PGHOST=$(kubectl get nodes --namespace {{ .Values.global.nsPrefix }} -o jsonpath='{.items[0].status.addresses[0].address}') -# PGPORT=$(kubectl get svc --namespace {{ .Values.global.nsPrefix }} {{ template "postgresql.fullname" . }} -o jsonpath='{.spec.ports[0].nodePort}') -# -# {{- else if contains "ClusterIP" .Values.service.type }} -# PGHOST=127.0.0.1 -# PGPORT={{ default "5432" .Values.service.port }} -# -# # Execute the following commands to route the connection: -# export POD_NAME=$(kubectl get pods --namespace {{ .Values.global.nsPrefix }} -l "app={{ template "postgresql.fullname" . }}" -o jsonpath="{.items[0].metadata.name}") -# kubectl port-forward --namespace {{ .Values.global.nsPrefix }} $POD_NAME {{ default "5432" .Values.service.port }}:{{ default "5432" .Values.service.port }} -# -# {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl b/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl deleted file mode 100644 index b2d3d523a9..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/_helpers.tpl +++ /dev/null @@ -1,36 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "postgresql.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "postgresql.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for networkpolicy. -*/}} -{{- define "postgresql.networkPolicy.apiVersion" -}} -{{- if and (ge .Capabilities.KubeVersion.Minor "4") (le .Capabilities.KubeVersion.Minor "6") -}} -"extensions/v1beta1" -{{- else if ge .Capabilities.KubeVersion.Minor "7" -}} -"networking.k8s.io/v1" -{{- end -}} -{{- end -}} diff --git a/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml b/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml deleted file mode 100644 index 57acfbda9b..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/deployment.yaml +++ /dev/null @@ -1,128 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ template "postgresql.fullname" . }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - template: - metadata: - labels: - app: {{ template "postgresql.fullname" . }} - spec: - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 8 }} - {{- end }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end }} - {{- if .Values.tolerations }} - tolerations: -{{ toYaml .Values.tolerations | indent 8 }} - {{- end }} - {{- if .Values.schedulerName }} - schedulerName: "{{ .Values.schedulerName }}" - {{- end }} - containers: - - name: {{ template "postgresql.fullname" . }} - image: "{{ .Values.image }}:{{ .Values.imageTag }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} - args: - {{- range $key, $value := default dict .Values.postgresConfig }} - - -c - - '{{ $key | snakecase }}={{ $value }}' - {{- end }} - env: - - name: POSTGRES_USER - value: {{ default "postgres" .Values.global.postgresUser | quote }} - # Required for pg_isready in the health probes. - - name: PGUSER - value: {{ default "postgres" .Values.global.postgresUser | quote }} - - name: POSTGRES_DB - value: {{ default "" .Values.global.postgresDatabase | quote }} - - name: POSTGRES_INITDB_ARGS - value: {{ default "" .Values.postgresInitdbArgs | quote }} - - name: PGDATA - value: /var/lib/postgresql/data/pgdata - - name: POSTGRES_PASSWORD - value: {{ default "postgres" .Values.global.postgresPassword | quote }} -# original code: -# valueFrom: -# secretKeyRef: -# name: {{ template "postgresql.fullname" . }} -# key: postgres-password - - name: POD_IP - valueFrom: { fieldRef: { fieldPath: status.podIP } } - ports: - - name: postgresql - containerPort: 5432 - livenessProbe: - exec: - command: - - sh - - -c - - exec pg_isready --host $POD_IP - initialDelaySeconds: 120 - timeoutSeconds: 5 - failureThreshold: 6 - readinessProbe: - exec: - command: - - sh - - -c - - exec pg_isready --host $POD_IP - initialDelaySeconds: 5 - timeoutSeconds: 3 - periodSeconds: 5 - resources: -{{ toYaml .Values.resources | indent 10 }} - volumeMounts: - - name: data - mountPath: {{ .Values.persistence.mountPath }} - subPath: {{ .Values.persistence.subPath }} -{{- if .Values.metrics.enabled }} - - name: metrics - image: "{{ .Values.metrics.image }}:{{ .Values.metrics.imageTag }}" - imagePullPolicy: {{ default "" .Values.metrics.imagePullPolicy | quote }} - env: - - name: DATA_SOURCE_NAME - value: postgresql://postgres@127.0.0.1:5432?sslmode=disable - ports: - - name: metrics - containerPort: 9187 - {{- if .Values.metrics.customMetrics }} - args: ["-extend.query-path", "/conf/custom-metrics.yaml"] - volumeMounts: - - name: custom-metrics - mountPath: /conf - readOnly: true - {{- end }} - resources: -{{ toYaml .Values.metrics.resources | indent 10 }} -{{- end }} - volumes: - - name: data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim | default (include "postgresql.fullname" .) }} - {{- else }} - emptyDir: {} - {{- end }} - {{- if and .Values.metrics.enabled .Values.metrics.customMetrics }} - - name: custom-metrics - secret: - secretName: {{ template "postgresql.fullname" . }} - items: - - key: custom-metrics.yaml - path: custom-metrics.yaml - {{- end }} - {{- if .Values.imagePullSecrets }} - imagePullSecrets: - - name: {{ .Values.imagePullSecrets }} - {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml b/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml deleted file mode 100644 index 92f3b71b15..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/networkpolicy.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if .Values.networkPolicy.enabled }} -kind: NetworkPolicy -apiVersion: {{ template "postgresql.networkPolicy.apiVersion" . }} -metadata: - name: "{{ template "postgresql.fullname" . }}" - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - podSelector: - matchLabels: - app: "{{ template "postgresql.fullname" . }}" - ingress: - # Allow inbound connections - - ports: - - port: 5432 - {{- if not .Values.networkPolicy.allowExternal }} - from: - - podSelector: - matchLabels: - {{ template "postgresql.fullname" . }}-client: "true" - {{- end }} - # Allow prometheus scrapes - - ports: - - port: 9187 -{{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml b/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml deleted file mode 100644 index f1d38dfb14..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/pvc.yaml +++ /dev/null @@ -1,28 +0,0 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ template "postgresql.fullname" . }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -{{- if .Values.persistence.annotations }} - annotations: -{{ toYaml .Values.persistence.annotations | indent 4 }} -{{- end }} -spec: - accessModes: - - {{ .Values.persistence.accessMode | quote }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} -{{- if .Values.persistence.storageClass }} -{{- if (eq "-" .Values.persistence.storageClass) }} - storageClassName: "" -{{- else }} - storageClassName: "{{ .Values.persistence.storageClass }}" -{{- end }} -{{- end }} -{{- end -}} diff --git a/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml b/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml deleted file mode 100644 index 6dd4c7da55..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/secrets.yaml +++ /dev/null @@ -1,19 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "postgresql.fullname" . }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - {{ if .Values.postgresPassword }} - postgres-password: {{ .Values.postgresPassword | b64enc | quote }} - {{ else }} - postgres-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} - {{- if .Values.metrics.customMetrics }} - custom-metrics.yaml: {{ toYaml .Values.metrics.customMetrics | b64enc | quote }} - {{- end }} diff --git a/kubernetes/dmaap/charts/postgresql/templates/svc.yaml b/kubernetes/dmaap/charts/postgresql/templates/svc.yaml deleted file mode 100644 index f6373c8368..0000000000 --- a/kubernetes/dmaap/charts/postgresql/templates/svc.yaml +++ /dev/null @@ -1,30 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: dmaap-prov-{{ template "postgresql.name" . }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ template "postgresql.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -{{- if .Values.metrics.enabled }} - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9187" -{{- end }} -spec: - type: {{ .Values.service.type }} - ports: - - name: postgresql - port: {{ .Values.service.port }} - targetPort: postgresql - {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} - nodePort: {{ .Values.service.nodePort }} - {{- end }} -{{- if .Values.service.externalIPs }} - externalIPs: -{{ toYaml .Values.service.externalIPs | indent 4 }} -{{- end }} - selector: - app: {{ template "postgresql.fullname" . }} diff --git a/kubernetes/dmaap/charts/postgresql/values.yaml b/kubernetes/dmaap/charts/postgresql/values.yaml deleted file mode 100644 index 37bbddaef9..0000000000 --- a/kubernetes/dmaap/charts/postgresql/values.yaml +++ /dev/null @@ -1,123 +0,0 @@ -## postgres image repository -image: "postgres" -## postgres image version -## ref: https://hub.docker.com/r/library/postgres/tags/ -## -imageTag: "9.6.2" - -## Specify a imagePullPolicy -## 'Always' if imageTag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: - -## Specify imagePullSecrets -## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod -## -# imagePullSecrets: myregistrykey - -## Create a database user -## Default: postgres -#postgresUser: "dmaap" -## Default: random 10 character string -#postgresPassword: "onapdemodb" - -## Create a database -## Default: the postgres user -#postgresDatabase: "dmaap" - -## Specify initdb arguments, e.g. --data-checksums -## ref: https://github.com/docker-library/docs/blob/master/postgres/content.md#postgres_initdb_args -## ref: https://www.postgresql.org/docs/current/static/app-initdb.html -# postgresInitdbArgs: - -## Use an alternate scheduler, e.g. "stork". -## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ -## -# schedulerName: - -## Specify runtime config parameters as a dict, using camelCase, e.g. -## {"sharedBuffers": "500MB"} -## ref: https://www.postgresql.org/docs/current/static/runtime-config.html -# postgresConfig: - -## Persist data to a persitent volume -persistence: - enabled: false - - ## A manually managed Persistent Volume and Claim - ## Requires persistence.enabled: true - ## If defined, PVC must be created manually before volume will be bound - # existingClaim: - - ## database data Persistent Volume Storage Class - ## If defined, storageClassName: <storageClass> - ## If set to "-", storageClassName: "", which disables dynamic provisioning - ## If undefined (the default) or set to null, no storageClassName spec is - ## set, choosing the default provisioner. (gp2 on AWS, standard on - ## GKE, AWS & OpenStack) - ## - # storageClass: "-" - accessMode: ReadWriteOnce - size: 8Gi - subPath: "postgresql-db" - mountPath: /var/lib/postgresql/data/pgdata - - # annotations: {} - -metrics: - enabled: false - image: wrouesnel/postgres_exporter - imageTag: v0.1.1 - imagePullPolicy: IfNotPresent - resources: - requests: - memory: 256Mi - cpu: 100m - ## Define additional custom metrics - ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file - # customMetrics: - # pg_database: - # query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')" - # metrics: - # - name: - # usage: "LABEL" - # description: "Name of the database" - # - size_bytes: - # usage: "GAUGE" - # description: "Size of the database in bytes" - -## Configure resource requests and limits -## ref: http://kubernetes.io/docs/user-guide/compute-resources/ -## -resources: - requests: - memory: 256Mi - cpu: 100m - -service: - type: ClusterIP - port: 5432 - externalIPs: [] - ## Manually set NodePort value - ## Requires service.type: NodePort - # nodePort: - -networkPolicy: - ## Enable creation of NetworkPolicy resources. - ## - enabled: false - - ## The Policy model to apply. When set to false, only pods with the correct - ## client label will have network access to the port PostgreSQL is listening - ## on. When true, PostgreSQL will accept connections from any source - ## (with the correct destination port). - ## - allowExternal: true - -## Node labels and tolerations for pod assignment -## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector -## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature -nodeSelector: {} -tolerations: [] -affinity: {} diff --git a/kubernetes/dmaap/resources/config/README.txt b/kubernetes/dmaap/resources/config/README.txt deleted file mode 100644 index 5cc01497f5..0000000000 --- a/kubernetes/dmaap/resources/config/README.txt +++ /dev/null @@ -1,10 +0,0 @@ -This directory contains all external configuration files that -need to be mounted into an application container. - -See the configmap.yaml in the templates directory for an example -of how to load (ie map) config files from this directory, into -Kubernetes, for distribution within the k8s cluster. - -See deployment.yaml in the templates directory for an example -of how the 'config mapped' files are then mounted into the -containers. diff --git a/kubernetes/dmaap/resources/config/application.properties b/kubernetes/dmaap/resources/config/application.properties deleted file mode 100644 index 496a15a531..0000000000 --- a/kubernetes/dmaap/resources/config/application.properties +++ /dev/null @@ -1 +0,0 @@ -sampleConfigKey=sampleConfigValue
\ No newline at end of file diff --git a/kubernetes/dmaap/resources/config/buscontroller.env b/kubernetes/dmaap/resources/config/buscontroller.env deleted file mode 100644 index 74d7822faa..0000000000 --- a/kubernetes/dmaap/resources/config/buscontroller.env +++ /dev/null @@ -1,12 +0,0 @@ -DMAAPBC_PG_ENABLED=true -DMAAPBC_PGHOST=dmaap-prov-postgresql -DMAAPBC_PGDBNAME={{ .Values.global.postgresDatabase }} -DMAAPBC_PGCRED={{ .Values.global.postgresPassword }} -DMAAPBC_PGUSER={{ .Values.global.postgresUser }} -DMAAPBC_MR_CNAME={{ .Values.dmaapMessageRouterService }} -DMAAPBC_AAF_URL={{ .Values.aafURL }} -DMAAPBC_TOPICMGR_USER={{ .Values.topicMgrUser }} -DMAAPBC_TOPICMGR_PWD={{ .Values.topicMgrPwd }} -DMAAPBC_ADMIN_USER={{ .Values.adminUser }} -DMAAPBC_ADMIN_PWD={{ .Values.adminPwd }} - diff --git a/kubernetes/dmaap/templates/deployment.yaml b/kubernetes/dmaap/templates/deployment.yaml deleted file mode 100644 index cfc4db0327..0000000000 --- a/kubernetes/dmaap/templates/deployment.yaml +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. -# -# 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: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - replicas: {{ .Values.buscontroller.replicaCount }} - template: - metadata: - labels: - app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - release: {{ .Release.Name }} - spec: - initContainers: -#Example init container for dependency checking -# - command: -# - /root/ready.py -# args: -# - --container-name -# - mariadb -# env: -# - name: NAMESPACE -# valueFrom: -# fieldRef: -# apiVersion: v1 -# fieldPath: metadata.namespace -# image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" -# imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} -# name: {{ include "common.name" . }}-readiness - containers: - - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image.buscontrollerImage }}:{{ .Values.image.buscontrollerVersion }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - ports: - - containerPort: {{ .Values.buscontroller.httpExternalPort }} -# wait till we get SSL certs before enabling this port -# - containerPort: {{ .Values.buscontroller.httpsPort }} - # disable liveness probe when breakpoints set in debugger - # so K8s doesn't restart unresponsive container - {{- if eq .Values.liveness.enabled true }} - livenessProbe: - httpGet: - port: {{ .Values.buscontroller.httpExternalPort }} - path: /webapi/info - initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }} - periodSeconds: {{ .Values.liveness.periodSeconds }} - {{ end -}} - readinessProbe: - httpGet: - port: {{ .Values.buscontroller.httpExternalPort }} - path: /webapi/info - initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }} - periodSeconds: {{ .Values.readiness.periodSeconds }} - env: -#Example environment variable passed to container -# - name: DEBUG_FLAG -# value: {{ .Values.global.debugEnabled | default .Values.debugEnabled | quote }} - volumeMounts: - - mountPath: /etc/localtime - name: localtime - readOnly: true - - mountPath: /opt/app/config - name: {{ include "common.name" . }}-config - resources: -{{ toYaml .Values.resources | indent 12 }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 10 }} - {{- end -}} - {{- if .Values.affinity }} - affinity: -{{ toYaml .Values.affinity | indent 10 }} - {{- end }} - - volumes: - - name: localtime - hostPath: - path: /etc/localtime - - name: {{ include "common.name" . }}-config - configMap: - name: {{ include "common.fullname" . }}-configmap - items: - - key: buscontroller.env - path: conf -#Example config file mount into container -# - name: {{ include "common.fullname" . }}-config -# configMap: -# name: {{ include "common.fullname" . }}-configmap -# items: -# - key: application.properties -# path: application.properties - imagePullSecrets: - - name: "{{ .Values.global.nsPrefix }}-docker-registry-key" diff --git a/kubernetes/dmaap/templates/service.yaml b/kubernetes/dmaap/templates/service.yaml deleted file mode 100644 index 9580e75590..0000000000 --- a/kubernetes/dmaap/templates/service.yaml +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. -# -# 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. - -#{{ if not .Values.disableBuscontroller }} -apiVersion: v1 -kind: Service -metadata: - name: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - namespace: {{ .Values.global.nsPrefix }} - labels: - app: {{ .Values.buscontroller.service }} - chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} - annotations: -# Example MSB registration annotation -# msb.onap.org/service-info: '[ -# { -# "serviceName": "so", -# "version": "v1", -# "url": "/ecomp/mso/infra", -# "protocol": "REST" -# "port": "8080", -# "visualRange":"1" -# } -# ]' -spec: - type: {{ .Values.buscontroller.type }} - ports: - {{if eq .Values.buscontroller.type "NodePort" -}} - - port: {{ .Values.buscontroller.httpExternalPort }} - targetPort: {{ .Values.buscontroller.httpExternalPort }} - nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpPort }} - name: "{{ .Values.buscontroller.name }}-http-port" -# This will be needed when we get SSL certificates -# - port: {{ .Values.buscontroller.httpsExternalPort }} -# targetPort: {{ .Values.buscontroller.httpsExternalPort }} -# nodePort: {{ .Values.global.nodePortPrefix | default .Values.nodePortPrefix }}{{ .Values.buscontroller.httpsPort }} -# name: "{{ .Values.buscontroller.name }}-https-port" - {{- else -}} - - port: {{ .Values.buscontroller.externalPort }} - targetPort: {{ .Values.buscontroller.httpPort }} - name: {{ .Values.buscontroller.name }} - {{- end}} - selector: - app: {{ include "common.name" . }}-{{ .Values.buscontroller.service }} - release: {{ .Release.Name }} - -#{{ end }} diff --git a/kubernetes/dmaap/values.yaml b/kubernetes/dmaap/values.yaml index f6c49842a4..76f0383f2e 100644 --- a/kubernetes/dmaap/values.yaml +++ b/kubernetes/dmaap/values.yaml @@ -24,95 +24,4 @@ global: loggingImage: beats/filebeat:5.5.0 postgresDatabase: dmaap postgresUser: dmaap_admin - postgresPassword: onapdemodb - nsPrefix: onap - - -################################################################# -# Application configuration defaults. -################################################################# -#nsPrefix: onap -pullPolicy: Always - -# application images -repository: nexus3.onap.org:10001 - -image: - buscontrollerImage: onap/dmaap/buscontroller - buscontrollerVersion: 1.0.5 - - -# application configuration -# Example: -config: -# username: myusername -# password: mypassword -dmaapMessageRouterService: dmaap -aafURL: https://onap-aaf:8905/proxy/ -topicMgrUser: m23456@dmaapbc.onap.org -topicMgrPwd: onapdemo -adminUser: m12345@dmaapbc.onap.org -adminPwd: onapdemo - - - -nodeSelector: {} - -affinity: {} - -# probe configuration parameters -liveness: - initialDelaySeconds: 10 - periodSeconds: 10 - # necessary to disable liveness probe when setting breakpoints - # in debugger so K8s doesn't restart unresponsive container - enabled: true - -readiness: - initialDelaySeconds: 10 - periodSeconds: 10 - -buscontroller: - service: prov-api - type: NodePort - name: buscontroller - httpExternalPort: 8080 - httpsExternalPort: 8443 - httpPort: 42 - httpsPort: 43 -# default number of instances - replicas: 1 -# flag to enable debugging - application support required - debugEnabled: false - -service: - #Example service definition with external, internal and node ports. - #Services may use any combination of ports depending on the 'type' of - #service being defined. - type: NodePort - name: <onap-app> - externalPort: <8080> - internalPort: <80> - nodePort: <replace with unused node port suffix eg. 23> - -ingress: - enabled: false - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # - # Example: - # Configure resource requests and limits - # ref: http://kubernetes.io/docs/user-guide/compute-resources/ - # Minimum memory for development is 2 CPU cores and 4GB memory - # Minimum memory for production is 4 CPU cores and 8GB memory -#resources: -# limits: -# cpu: 2 -# memory: 4Gi -# requests: -# cpu: 2 -# memory: 4Gi + postgresPassword: onapdemodb
\ No newline at end of file diff --git a/kubernetes/onap/requirements.yaml b/kubernetes/onap/requirements.yaml index d2cacb6562..8c9c12845b 100644 --- a/kubernetes/onap/requirements.yaml +++ b/kubernetes/onap/requirements.yaml @@ -48,6 +48,10 @@ dependencies: version: ~2.0.0 repository: '@local' condition: dcaegen2.enabled + - name: dmaap + version: ~2.0.0 + repository: '@local' + condition: dmaap.enabled - name: esr version: ~2.0.0 repository: '@local' diff --git a/kubernetes/onap/resources/environments/dev.yaml b/kubernetes/onap/resources/environments/dev.yaml index a8dd5243ff..651cb9160e 100644 --- a/kubernetes/onap/resources/environments/dev.yaml +++ b/kubernetes/onap/resources/environments/dev.yaml @@ -93,10 +93,6 @@ sdnc: config: enableClustering: false - dmaap-listener: - config: - dmaapPort: 3904 - mysql: disableNfsProvisioner: false replicaCount: 1 diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml index a2427711cd..470fdfb031 100644 --- a/kubernetes/onap/values.yaml +++ b/kubernetes/onap/values.yaml @@ -94,10 +94,6 @@ sdnc: config: enableClustering: false - dmaap-listener: - config: - dmaapPort: 3904 - mysql: disableNfsProvisioner: true replicaCount: 1 diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml index c4cc253b7f..c59ed08f3f 100644 --- a/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/deployment.yaml @@ -30,6 +30,14 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} spec: + initContainers: + - command: ["sh", "-c", "chown -R 200:200 /share"] + image: "{{ .Values.global.ubuntuInitRepository }}/{{ .Values.global.ubuntuInitImage }}" + imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} + name: {{ include "common.name" . }}-init + volumeMounts: + - mountPath: /share + name: nexus-data containers: - name: {{ include "common.name" . }} image: "{{ .Values.global.repository | default .Values.repository }}/{{ .Values.image }}" @@ -53,6 +61,8 @@ spec: - mountPath: /etc/localtime name: localtime readOnly: true + - mountPath: /sonatype-work + name: nexus-data resources: {{ toYaml .Values.resources | indent 12 }} {{- if .Values.nodeSelector }} @@ -67,5 +77,12 @@ spec: - name: localtime hostPath: path: /etc/localtime + - name: nexus-data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ include "common.fullname" . }} + {{- else }} + emptyDir: {} + {{- end }} imagePullSecrets: - name: "{{ include "common.namespace" . }}-docker-registry-key" diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml new file mode 100644 index 0000000000..8be3d4c9cb --- /dev/null +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/pv.yaml @@ -0,0 +1,37 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolume +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + name: {{ include "common.fullname" . }} +spec: + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: {{ .Values.persistence.volumeReclaimPolicy }} + hostPath: + path: {{ .Values.global.persistence.mountPath | default .Values.persistence.mountPath }}/{{ .Release.Namespace }}/{{ .Values.persistence.mountSubPath }} +{{- end -}} diff --git a/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml new file mode 100644 index 0000000000..e27c3311e9 --- /dev/null +++ b/kubernetes/policy/charts/drools/charts/nexus/templates/pvc.yaml @@ -0,0 +1,48 @@ +{{/* +# Copyright © 2017 Amdocs, Bell Canada +# +# 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. +*/}} + +{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: {{ include "common.fullname" . }} + namespace: {{ include "common.namespace" . }} + labels: + app: {{ include "common.name" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- if .Values.persistence.annotations }} + annotations: +{{ toYaml .Values.persistence.annotations | indent 4 }} +{{- end }} +spec: + selector: + matchLabels: + name: {{ include "common.fullname" . }} + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} +{{- if .Values.persistence.storageClass }} +{{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" +{{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" +{{- end }} +{{- end }} +{{- end -}} diff --git a/kubernetes/policy/charts/drools/charts/nexus/values.yaml b/kubernetes/policy/charts/drools/charts/nexus/values.yaml index 250f0a70f8..667987640b 100644 --- a/kubernetes/policy/charts/drools/charts/nexus/values.yaml +++ b/kubernetes/policy/charts/drools/charts/nexus/values.yaml @@ -20,6 +20,9 @@ global: repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ== readinessRepository: oomk8s readinessImage: readiness-check:2.0.0 + ubuntuInitRepository: oomk8s + ubuntuInitImage: ubuntu-init:1.0.0 + persistence: {} ################################################################# # Application configuration defaults. @@ -64,6 +67,15 @@ service: ingress: enabled: false +## Persist data to a persitent volume +persistence: + enabled: true + volumeReclaimPolicy: Retain + accessMode: ReadWriteMany + size: 2Gi + mountPath: /dockerdata-nfs + mountSubPath: nexus/data + resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little diff --git a/kubernetes/policy/charts/drools/templates/statefulset.yaml b/kubernetes/policy/charts/drools/templates/statefulset.yaml index 7a616d71e6..5dd49edfec 100644 --- a/kubernetes/policy/charts/drools/templates/statefulset.yaml +++ b/kubernetes/policy/charts/drools/templates/statefulset.yaml @@ -23,7 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - serviceName: {{ include "common.fullname" . }} + serviceName: {{ include "common.servicename" . }} replicas: {{ .Values.replicaCount }} selector: matchLabels: diff --git a/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf b/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf index 48fafcb45f..7b13116e34 100644 --- a/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf +++ b/kubernetes/policy/charts/pdp/resources/config/pe/pdp.conf @@ -30,7 +30,7 @@ TOMCAT_X_MX_MB=1024 UEB_CLUSTER=message-router REST_PAP_URL=http://{{ .Values.global.pap.nameOverride }}:{{.Values.config.papPort}}/pap/ -REST_PDP_ID=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/ +REST_PDP_ID=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort}}/pdp/ REST_PDP_CONFIG=/opt/app/policy/servers/pdp/bin/config REST_PDP_WEBAPPS=/opt/app/policy/servers/pdp/webapps REST_PDP_REGISTER=true diff --git a/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf b/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf index 2021c09439..f5f4060aad 100644 --- a/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf +++ b/kubernetes/policy/charts/pdp/resources/config/pe/pdplp.conf @@ -17,7 +17,7 @@ LOGPARSER_JMX_PORT=9997 LOGPARSER_X_MS_MB=1024 LOGPARSER_X_MX_MB=1024 -SERVER=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort}}/pdp/ +SERVER=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort}}/pdp/ LOGPATH=/opt/app/policy/servers/pdp/logs/pdp-rest.log PARSERLOGPATH=IntegrityMonitor.log diff --git a/kubernetes/policy/charts/pdp/templates/service.yaml b/kubernetes/policy/charts/pdp/templates/service.yaml index fc608d5ab8..d44fbb9f28 100644 --- a/kubernetes/policy/charts/pdp/templates/service.yaml +++ b/kubernetes/policy/charts/pdp/templates/service.yaml @@ -49,3 +49,4 @@ spec: app: {{ include "common.name" . }} release: {{ .Release.Name }} sessionAffinity: None + clusterIP: None diff --git a/kubernetes/policy/charts/pdp/templates/statefulset.yaml b/kubernetes/policy/charts/pdp/templates/statefulset.yaml index d09c446381..29ded61ffa 100644 --- a/kubernetes/policy/charts/pdp/templates/statefulset.yaml +++ b/kubernetes/policy/charts/pdp/templates/statefulset.yaml @@ -23,7 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: - serviceName: {{ include "common.fullname" . }} + serviceName: {{ include "common.servicename" . }} replicas: {{ .Values.replicaCount }} selector: matchLabels: diff --git a/kubernetes/policy/charts/pdp/values.yaml b/kubernetes/policy/charts/pdp/values.yaml index 4f63e3222f..3287c9f321 100644 --- a/kubernetes/policy/charts/pdp/values.yaml +++ b/kubernetes/policy/charts/pdp/values.yaml @@ -58,13 +58,11 @@ readiness: periodSeconds: 10 service: - type: NodePort + type: ClusterIP name: pdp portName: pdp + internalPort: 8081 externalPort: 8081 - #Example internal target port if required - #internalPort: <80> - nodePort: 20 ingress: enabled: false diff --git a/kubernetes/policy/resources/config/pe/pap.conf b/kubernetes/policy/resources/config/pe/pap.conf index 768ebc9d23..39199d7f1a 100644 --- a/kubernetes/policy/resources/config/pe/pap.conf +++ b/kubernetes/policy/resources/config/pe/pap.conf @@ -28,7 +28,7 @@ TOMCAT_X_MX_MB=1024 # pap properties PAP_PDPS=/opt/app/policy/servers/pap/bin/pdps -PAP_URL=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort2}}/pap/ +PAP_URL=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort2}}/pap/ PAP_INITIATE_PDP=true PAP_HEARTBEAT_INTERVAL=10000 @@ -39,7 +39,7 @@ REST_ADMIN_REPOSITORY=repository REST_ADMIN_WORKSPACE=workspace # PDP related properties -PAP_PDP_URL=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-0.{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/,http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/ +PAP_PDP_URL=http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-0.{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/,http://{{ .Release.Name }}-{{ .Values.global.pdp.nameOverride }}-1.{{ .Values.global.pdp.nameOverride }}:{{ .Values.config.pdpPort }}/pdp/ PAP_PDP_HTTP_USER_ID=testpdp PAP_PDP_HTTP_PASSWORD=alpha123 diff --git a/kubernetes/policy/resources/config/pe/paplp.conf b/kubernetes/policy/resources/config/pe/paplp.conf index 430feb4064..205497c35d 100644 --- a/kubernetes/policy/resources/config/pe/paplp.conf +++ b/kubernetes/policy/resources/config/pe/paplp.conf @@ -17,7 +17,7 @@ LOGPARSER_JMX_PORT=9996 LOGPARSER_X_MS_MB=1024 LOGPARSER_X_MX_MB=1024 -SERVER=http://{{ include "common.fullname" . }}:{{.Values.service.externalPort2}}/pap/ +SERVER=http://{{ include "common.servicename" . }}:{{.Values.service.externalPort2}}/pap/ LOGPATH=/opt/app/policy/servers/pap/logs/pap-rest.log PARSERLOGPATH=IntegrityMonitor.log diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties index e375ac7cfe..10bfa47961 100644 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/music.properties @@ -13,7 +13,7 @@ music.serialize.compress = true #By default it's eventual music.atomic.get = false music.atomic.put = true -cassandra.host={{.Values.cassandra.chart.name}}.{{.Release.Namespace}} -zookeeper.host={{.Values.zookeeper.chart.name}}.{{.Release.Namespace}} +cassandra.host={{.Values.cassandra.service.name}} +zookeeper.host={{.Values.zookeeper.service.name}} cassandra.user={{.Values.cassandra.config.cassandraUsername}} cassandra.password={{.Values.cassandra.config.cassandraPassword}} diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties index 0e3381c61a..6157f29356 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/portal.properties @@ -16,7 +16,7 @@ ueb_app_key = 7GkVcrO6sIDb3ngW ueb_app_secret = uCYgKjWKK5IxPGNNZzYSSWo9 ueb_app_mailbox_name = ECOMP-PORTAL-INBOX -ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}} +ueb_url_list = message-router ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Consumer group name for UEB topic. diff --git a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties index 29149bc56a..47c73cd6a1 100755 --- a/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties +++ b/kubernetes/portal/charts/portal-app/resources/config/deliveries/properties/ONAPPORTAL/system.properties @@ -1,6 +1,6 @@ #mysql db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb:failover://{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/portal +db.connectionURL = jdbc:mariadb:failover://portal-db:3306/portal db.userName =root db.password =Aa123456 db.hib.dialect = org.hibernate.dialect.MySQLDialect @@ -82,7 +82,7 @@ notification_update_duration = 900 #Microservices Related Properties for Portal microservices.widget.protocol = http -microservices.widget.hostname = {{.Values.widget.chart.name}}.{{.Release.Namespace}} +microservices.widget.hostname = portal-widget microservices.widget.username = widget_user microservices.widget.password = M+KcrCMVrR1rAxtiFE49n1uXC3FCkNBqFgeYsubEC/U= #This property won't be needed after consul is functional on VMs - diff --git a/kubernetes/portal/charts/portal-app/values.yaml b/kubernetes/portal/charts/portal-app/values.yaml index 1663674a4e..b0ea028f6f 100644 --- a/kubernetes/portal/charts/portal-app/values.yaml +++ b/kubernetes/portal/charts/portal-app/values.yaml @@ -68,22 +68,22 @@ service: nodePort3: 14 mariadb: - chart: + service: name: portal-db widget: - chart: + service: name: portal-widget cassandra: - chart: + service: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 zookeeper: - chart: + service: name: portal-zookeeper messageRouter: - chart: + service: name: message-router ingress: diff --git a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql index 781b04626c..0163d317bb 100644 --- a/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql +++ b/kubernetes/portal/charts/portal-mariadb/resources/config/mariadb/oom_updates.sql @@ -4,5 +4,21 @@ Any updates required by OOM to the portaldb are made here. 1. split up SDC-FE and SDC-BE. Originally both FE and BE point to the same IP while the OOM K8s version has these service split up. */ -UPDATE fn_app SET app_rest_endpoint = 'http://sdc.api.be.simpledemo.onap.org:8080/api/v2' where app_name = 'SDC'; -UPDATE fn_app SET app_url = 'http://cli.api.simpledemo.onap.org:8080', app_type = 1 where app_name='CLI'; +-- app_url is the FE, app_rest_endpoint is the BE +--portal-sdk => doesnt have a node port so this won't work +update fn_app set app_url = 'http://portal-sdk.simpledemo.onap.org:8990/ONAPPORTALSDK/welcome.htm', app_rest_endpoint = 'http://portal-sdk:8990/ONAPPORTALSDK/api/v2' where app_name = 'xDemo App'; +--dmaap-bc => the dmaap-bc chart actually opens 8080 and 8443, not 8989. the chart isnt merged yet either. confirm the service name after bc chart merge +update fn_app set app_url = 'http://dmaap-bc.simpledemo.onap.org:8989/ECOMPDBCAPP/dbc#/dmaap', app_rest_endpoint = 'http://dmaap-bc:8989/ECOMPDBCAPP/api/v2' where app_name = 'DMaaP Bus Ctrl'; +--sdc-be => 8443:30204, 8080:30205 +--sdc-fe => 8181:30206, 9443:30207 +update fn_app set app_url = 'http://sdc.api.fe.simpledemo.onap.org:8181/sdc1/portal', app_rest_endpoint = 'http://sdc-be:8080/api/v2' where app_name = 'SDC'; +--pap => 8443:30219 +update fn_app set app_url = 'http://policy.api.simpledemo.onap.org:8443/onap/policy', app_rest_endpoint = 'http://pap:8443/onap/api/v2' where app_name = 'Policy'; +--vid => 8080:30200 +update fn_app set app_url = 'http://vid.api.simpledemo.onap.org:8080/vid/welcome.htm', app_rest_endpoint = 'http://vid:8080/vid/api/v2' where app_name = 'Virtual Infrastructure Deployment'; +--sparky => sparky doesn't open a node port.. +update fn_app set app_url = 'http://aai.api.sparky.simpledemo.onap.org:8080/services/aai/webapp/index.html#/viewInspect', app_rest_endpoint = 'http://aai-sparky-be.{{.Release.Namespace}}:9517/api/v2' where app_name = 'A&AI UI'; +--cli => 8080:30260 +update fn_app set app_url = 'http://cli.api.simpledemo.onap.org:8080/', app_type = 1 where app_name = 'CLI'; +--msb-discovery => 10081:30281 this is clearly incorrect +update fn_app set app_url = 'http://msb.api.discovery.simpledemo.onap.org:8080/iui/microservices/default.html' where app_name = 'MSB';
\ No newline at end of file diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties index 72e97006c7..b17797658a 100644 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/music.properties @@ -14,7 +14,7 @@ music.serialize.compress = true music.atomic.get = false music.atomic.put = true -cassandra.host={{.Values.cassandra.chart.name}}.{{.Release.Namespace}} -zookeeper.host={{.Values.zookeeper.chart.name}}.{{.Release.Namespace}} +cassandra.host={{.Values.cassandra.service.name}} +zookeeper.host={{.Values.zookeeper.service.name}} cassandra.user={{.Values.cassandra.config.cassandraUsername}} cassandra.password={{.Values.cassandra.config.cassandraPassword}} diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties index 4b6f251e8b..2b199cca5c 100755 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/portal.properties @@ -30,7 +30,7 @@ ecomp_rest_url = http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/auxapi ueb_listeners_enable = false # UEB Configuration -ueb_url_list = {{.Values.messageRouter.chart.name}}.{{.Release.Namespace}} +ueb_url_list = message-router # ECOMP Portal listens on this UEB topic ecomp_portal_inbox_name = ECOMP-PORTAL-INBOX # Replace these 3 default values with the ones for your specific App, diff --git a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties index cec75f06ba..531c96cccc 100755 --- a/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties +++ b/kubernetes/portal/charts/portal-sdk/resources/config/deliveries/properties/ONAPPORTALSDK/system.properties @@ -24,7 +24,7 @@ decryption_key = AGLDdG4D04BKm2IxIWEr8o== ########################################################################## db.driver = org.mariadb.jdbc.Driver -db.connectionURL = jdbc:mariadb://{{.Values.mariadb.chart.name}}.{{.Release.Namespace}}:3306/ecomp_sdk +db.connectionURL = jdbc:mariadb://portal-db:3306/ecomp_sdk db.userName = root db.password = Aa123456 db.min_pool_size = 5 @@ -62,7 +62,7 @@ guard_notebook_url= #authenticate user server #TODO: what is this URL supposed to be pointing to? Nothing in portal opens 8383 -authenticate_user_server=http://portal.onap.org:8383/openid-connect-server-webapp/allUsers +authenticate_user_server=http://portal.api.simpledemo.onap.org:8383/openid-connect-server-webapp/allUsers #cookie domain cookie_domain = onap.org diff --git a/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml b/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml index 1c94c78bb4..3b1d1fd478 100644 --- a/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-sdk/templates/deployment.yaml @@ -38,7 +38,7 @@ spec: - /root/ready.py args: - --container-name - - {{ .Values.mariadb.chart.name }} + - "portal-db" env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-sdk/values.yaml b/kubernetes/portal/charts/portal-sdk/values.yaml index 1bb7e5ab65..4974ea2755 100644 --- a/kubernetes/portal/charts/portal-sdk/values.yaml +++ b/kubernetes/portal/charts/portal-sdk/values.yaml @@ -61,22 +61,22 @@ service: internalPort: 8080 mariadb: - chart: + service: name: portal-db widget: - chart: + service: name: portal-widget cassandra: - chart: + service: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 zookeeper: - chart: + service: name: portal-zookeeper messageRouter: - chart: + service: name: message-router ingress: diff --git a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties index e228e2b10d..547a882c98 100644 --- a/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties +++ b/kubernetes/portal/charts/portal-widget/resources/config/deliveries/properties/ONAPWIDGETMS/application.properties @@ -6,7 +6,7 @@ spring.http.multipart.max-request-size=128MB microservice.widget.location=/tmp ## App DB Properties -spring.datasource.url=jdbc:mysql://{{.Values.mariadb.chart.name}}.{{include "common.namespace" .}}:3306/portal +spring.datasource.url=jdbc:mysql://portal-db:3306/portal spring.datasource.username=root spring.datasource.password=Aa123456 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect diff --git a/kubernetes/portal/charts/portal-widget/templates/deployment.yaml b/kubernetes/portal/charts/portal-widget/templates/deployment.yaml index bff7924e29..6ce7d4eaee 100644 --- a/kubernetes/portal/charts/portal-widget/templates/deployment.yaml +++ b/kubernetes/portal/charts/portal-widget/templates/deployment.yaml @@ -38,7 +38,7 @@ spec: - /root/ready.py args: - --container-name - - {{ .Values.mariadb.chart.name }} + - "portal-db" env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/portal/charts/portal-widget/values.yaml b/kubernetes/portal/charts/portal-widget/values.yaml index dc73446175..4f1a2a5a71 100644 --- a/kubernetes/portal/charts/portal-widget/values.yaml +++ b/kubernetes/portal/charts/portal-widget/values.yaml @@ -55,7 +55,7 @@ readiness: periodSeconds: 10 mariadb: - chart: + service: name: portal-db service: diff --git a/kubernetes/portal/charts/portal-zookeeper/values.yaml b/kubernetes/portal/charts/portal-zookeeper/values.yaml index 52408a83d7..951acf5b78 100644 --- a/kubernetes/portal/charts/portal-zookeeper/values.yaml +++ b/kubernetes/portal/charts/portal-zookeeper/values.yaml @@ -48,7 +48,7 @@ readiness: service: type: ClusterIP - name: portal-zk + name: portal-zookeeper portName: portal-zk externalPort: 2181 internalPort: 2181 diff --git a/kubernetes/portal/launch-onap-portal.sh b/kubernetes/portal/launch-onap-portal.sh new file mode 100755 index 0000000000..d9f64c121b --- /dev/null +++ b/kubernetes/portal/launch-onap-portal.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +usage () { echo "Usage : $0 <namespace> <helm release name>"; } + +READY_JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' + +NAMESPACE=$1 +RELEASE_NAME=$2 + +if [ ! "$NAMESPACE" ] || [ ! "$RELEASE_NAME" ] +then + usage + exit 1 +fi + +PORTAL_POD_NAME=`kubectl get pods --namespace $NAMESPACE --selector=app=portal-app,release=$RELEASE_NAME \ +-o jsonpath='{.items[*].metadata.name}' -o jsonpath="$READY_JSONPATH" | grep "Ready=True"|awk -F: '{print $1}' ` +SDC_POD_NAME=`kubectl get pods --namespace $NAMESPACE --selector=app=sdc-fe,release=$RELEASE_NAME \ +-o jsonpath='{.items[*].metadata.name}' -o jsonpath="$READY_JSONPATH" | grep "Ready=True" |awk -F: '{print $1}'` +VID_POD_NAME=`kubectl get pods --namespace $NAMESPACE --selector=app=vid,release=$RELEASE_NAME \ +-o jsonpath='{.items[*].metadata.name}' -o jsonpath="$READY_JSONPATH" | grep "Ready=True" |awk -F: '{print $1}'` +POLICY_POD_NAME=`kubectl get pods --namespace $NAMESPACE --selector=app=pap,release=$RELEASE_NAME \ +-o jsonpath='{.items[*].metadata.name}' -o jsonpath="$READY_JSONPATH" | grep "Ready=True" |awk -F: '{print $1}'` +PORTALSDK_POD_NAME=`kubectl get pods --namespace $NAMESPACE --selector=app=portal-sdk,release=$RELEASE_NAME \ +-o jsonpath='{.items[*].metadata.name}' -o jsonpath="$READY_JSONPATH" | grep "Ready=True" |awk -F: '{print $1}'` + +#TODO: Add more as testing progresses +[[ -z "$PORTAL_POD_NAME" ]] && { echo "WARNING: portal-app is not running in your Kubernetes cluster"; } +[[ -z "$SDC_POD_NAME" ]] && { echo "WARNING: sdc-fe is not running in your Kubernetes cluster"; } +[[ -z "$VID_POD_NAME" ]] && { echo "WARNING: vid is not running in your Kubernetes cluster"; } +[[ -z "$POLICY_POD_NAME" ]] && { echo "WARNING: pap is not running in your Kubernetes cluster"; } +[[ -z "$PORTALSDK_POD_NAME" ]] && { echo "WARNING: portal-sdk is not running in your Kubernetes cluster"; } + +if [ ! -z "$PORTAL_POD_NAME" ] +then + kubectl -n $NAMESPACE port-forward "$PORTAL_POD_NAME" 8989:8080 & + PORTAL_PID=$! +fi + +if [ ! -z "$VID_POD_NAME" ] +then + kubectl -n $NAMESPACE port-forward "$VID_POD_NAME" 8080:8080 & + VID_PID=$! +fi + +if [ ! -z "$SDC_POD_NAME" ] +then + kubectl -n $NAMESPACE port-forward "$SDC_POD_NAME" 8181:8181 & + SDC_PID=$! +fi + +if [ ! -z "$POLICY_POD_NAME" ] +then + kubectl -n $NAMESPACE port-forward "$POLICY_POD_NAME" 8443:8443 & + POLICY_PID=$! +fi + +if [ ! -z "$PORTALSDK_POD_NAME" ] +then + kubectl -n $NAMESPACE port-forward "$PORTALSDK_POD_NAME" 8990:8080 & + PORTALSDK_PID=$! +fi + +trap "{ kill -9 $PORTAL_PID $VID_PID $SDC_PID $POLICY_PID $PORTALSDK_PID; exit 0; }" INT +echo -e $'Press Ctrl+C to exit...\n' + +while : +do + sleep 60 +done
\ No newline at end of file diff --git a/kubernetes/portal/resources/config/log/filebeat/filebeat.yml b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml index b0d4690754..0bc14ea908 100644 --- a/kubernetes/portal/resources/config/log/filebeat/filebeat.yml +++ b/kubernetes/portal/resources/config/log/filebeat/filebeat.yml @@ -21,7 +21,7 @@ output.logstash: #List of logstash server ip addresses with port number. #But, in our case, this will be the loadbalancer IP address. #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately. - hosts: ["{{.Values.config.logstashServiceName}}.{{.Release.Namespace}}:{{.Values.config.logstashPort}}"] + hosts: ["{{.Values.config.logstashServiceName}}:{{.Values.config.logstashPort}}"] #If enable will do load balancing among availabe Logstash, automatically. loadbalance: true diff --git a/kubernetes/portal/values.yaml b/kubernetes/portal/values.yaml index e22b3f9669..949efad31b 100644 --- a/kubernetes/portal/values.yaml +++ b/kubernetes/portal/values.yaml @@ -23,21 +23,21 @@ portal-mariadb: nameOverride: portal-db mariadb: - chart: + service: name: portal-db widget: - chart: + service: name: portal-widget cassandra: - chart: + service: name: portal-cassandra config: cassandraUsername: root cassandraPassword: Aa123456 zookeeper: - chart: + service: name: portal-zookeeper messageRouter: - chart: + service: name: message-router
\ No newline at end of file diff --git a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py index 706d5e58bb..7bb8c1c13c 100755 --- a/kubernetes/robot/resources/config/eteshare/config/vm_properties.py +++ b/kubernetes/robot/resources/config/eteshare/config/vm_properties.py @@ -59,7 +59,7 @@ GLOBAL_INJECTED_PROPERTIES = { "GLOBAL_INJECTED_CLAMP_IP_ADDR" : "clamp.{{include "common.namespace" .}}", "GLOBAL_INJECTED_CLI_IP_ADDR" : "cli.{{include "common.namespace" .}}", "GLOBAL_INJECTED_CLOUD_ENV" : "openstack", - "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-controller.{{include "common.namespace" .}}", + "GLOBAL_INJECTED_DCAE_IP_ADDR" : "dcae-healthcheck.{{include "common.namespace" .}}", "GLOBAL_INJECTED_DNS_IP_ADDR" : "N/A", "GLOBAL_INJECTED_DOCKER_VERSION" : "1.2-STAGING-latest", "GLOBAL_INJECTED_EXTERNAL_DNS" : "N/A", diff --git a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml index 6c491b773d..b08c74edad 100644 --- a/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-be/templates/deployment.yaml @@ -36,12 +36,6 @@ spec: - /root/ready.py args: - --container-name - - "sdc-es" - - --container-name - - "sdc-cs" - - --container-name - - "sdc-kb" - - --container-name - "sdc-onboarding-be" env: - name: NAMESPACE @@ -58,7 +52,7 @@ spec: - /root/job_complete.py args: - --job-name - - {{ .Release.Name }}-sdc-cs-config-cassandra + - {{ .Release.Name }}-sdc-es-config-elasticsearch env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdc/charts/sdc-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-be/templates/job.yaml index 535d271bb0..c2203d5c20 100644 --- a/kubernetes/sdc/charts/sdc-be/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-be/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: diff --git a/kubernetes/sdc/charts/sdc-cs/templates/job.yaml b/kubernetes/sdc/charts/sdc-cs/templates/job.yaml index 5318d9149d..cdccbf40a5 100644 --- a/kubernetes/sdc/charts/sdc-cs/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-cs/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: diff --git a/kubernetes/sdc/charts/sdc-es/templates/job.yaml b/kubernetes/sdc/charts/sdc-es/templates/job.yaml index 6fa0015066..6fd3bc7a42 100644 --- a/kubernetes/sdc/charts/sdc-es/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-es/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: diff --git a/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml index dc96fc77cd..bbc779044b 100644 --- a/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-fe/templates/deployment.yaml @@ -37,10 +37,6 @@ spec: args: - --container-name - "sdc-kb" - - --container-name - - "sdc-be" - - --container-name - - "sdc-onboarding-be" env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml index f7467cb621..f33dbe6e38 100644 --- a/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-kb/templates/deployment.yaml @@ -31,20 +31,20 @@ spec: release: {{ .Release.Name }} spec: initContainers: - - name: {{ include "common.name" . }}-readiness + - name: {{ include "common.name" . }}-job-completion + image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" + imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" command: - - /root/ready.py + - /root/job_complete.py args: - - --container-name - - "sdc-es" + - --job-name + - {{ .Release.Name }}-sdc-es-config-elasticsearch env: - name: NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} containers: - name: {{ include "common.name" . }} image: "{{ include "common.repository" . }}/{{ .Values.image }}" diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml index 20e2ffa104..328a28dccb 100644 --- a/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/deployment.yaml @@ -31,20 +31,6 @@ spec: release: {{ .Release.Name }} spec: initContainers: - - name: {{ include "common.name" . }}-readiness - command: - - /root/ready.py - args: - - --container-name - - "sdc-cs" - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - name: {{ include "common.name" . }}-job-completion image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" @@ -52,7 +38,7 @@ spec: - /root/job_complete.py args: - --job-name - - {{ .Release.Name }}-sdc-cs-config-cassandra + - {{ .Release.Name }}-sdc-onboarding-be-cassandra-init env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml index d089e9a5d7..35f2ef849c 100644 --- a/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml +++ b/kubernetes/sdc/charts/sdc-onboarding-be/templates/job.yaml @@ -23,6 +23,7 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: + backoffLimit: 20 template: metadata: labels: @@ -31,20 +32,6 @@ spec: spec: restartPolicy: Never initContainers: - - name: {{ include "common.name" . }}-init-readiness - image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" - imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }} - command: - - /root/ready.py - args: - - --container-name - - sdc-cs - env: - - name: NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - name: {{ include "common.name" . }}-job-completion image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}" imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}" diff --git a/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties b/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties index dc0deb278e..de1346a461 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties +++ b/kubernetes/sdnc/charts/dmaap-listener/resources/config/dhcpalert.properties @@ -14,7 +14,7 @@ password =admin contenttype =application/json authKey=fxoW4jZrO7mdLWWa:f4KxkoBtToyoEG7suMoV8KhnkwM= authDate=2016-02-18T13:57:37-0800 -host=dmaap.{{.Release.Namespace}}:3904 +host=message-router.{{.Release.Namespace}}:{{.Values.config.dmaapPort}} topic=VCPE-DHCP-EVENT group=jmsgrp id=sdnc1 diff --git a/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml b/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml index e712a410c8..733b21e7bc 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml +++ b/kubernetes/sdnc/charts/dmaap-listener/templates/deployment.yaml @@ -38,6 +38,8 @@ spec: - {{ .Values.config.mysqlChartName }} - --container-name - {{ .Values.config.sdncChartName }} + - --container-name + - {{ .Values.config.msgRouterContainerName }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdnc/charts/dmaap-listener/values.yaml b/kubernetes/sdnc/charts/dmaap-listener/values.yaml index 1a5ca2cdf7..189aa72b1f 100644 --- a/kubernetes/sdnc/charts/dmaap-listener/values.yaml +++ b/kubernetes/sdnc/charts/dmaap-listener/values.yaml @@ -39,6 +39,7 @@ config: dmaapPort: 3904 mysqlChartName: sdnc-dbhost sdncChartName: sdnc + msgRouterContainerName: dmaap configDir: /opt/onap/sdnc/data/properties # default number of instances @@ -64,7 +65,7 @@ ingress: enabled: false service: - name: dmaap-listener + name: sdnc-dmaap-listener resources: {} #resources: diff --git a/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties b/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties new file mode 100644 index 0000000000..15cb2182a2 --- /dev/null +++ b/kubernetes/sdnc/charts/ueb-listener/resources/config/dblib.properties @@ -0,0 +1,37 @@ +### +# ============LICENSE_START======================================================= +# openECOMP : SDN-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# 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. +# ============LICENSE_END========================================================= +### + +# dblib.properties +org.onap.ccsdk.sli.dbtype=jdbc + +org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 +org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://{{.Values.mysql.service.name}}.{{.Release.Namespace}}:{{.Values.mysql.service.internalPort}}/sdnctl +org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver +org.onap.ccsdk.sli.jdbc.database=sdnctl +org.onap.ccsdk.sli.jdbc.user=sdnctl +org.onap.ccsdk.sli.jdbc.password=gamma +org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01 +org.onap.ccsdk.sli.jdbc.connection.timeout=50 +org.onap.ccsdk.sli.jdbc.request.timeout=100 +org.onap.ccsdk.sli.jdbc.limit.init=10 +org.onap.ccsdk.sli.jdbc.limit.min=10 +org.onap.ccsdk.sli.jdbc.limit.max=20 +org.onap.dblib.connection.recovery=false diff --git a/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties b/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties index 72dee15938..cd184bfc32 100644 --- a/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties +++ b/kubernetes/sdnc/charts/ueb-listener/resources/config/ueb-listener.properties @@ -19,3 +19,4 @@ org.onap.ccsdk.sli.northbound.uebclient.keystore-path= org.onap.ccsdk.sli.northbound.uebclient.keystore-password= org.onap.ccsdk.sli.northbound.uebclient.xslt-path-list= org.onap.ccsdk.sli.northbound.uebclient.artifact-map=/opt/onap/sdnc/data/properties/artifact.map +org.onap.ccsdk.sli.northbound.uebclient.msg-bus-address=message-router.{{.Release.Namespace}} diff --git a/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml b/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml index b11cf95277..e3f324e046 100644 --- a/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml +++ b/kubernetes/sdnc/charts/ueb-listener/templates/deployment.yaml @@ -38,6 +38,10 @@ spec: - {{ .Values.config.mysqlChartName }} - --container-name - {{ .Values.config.sdncChartName }} + - --container-name + - {{ .Values.config.sdcbeChartName }} + - --container-name + - {{ .Values.config.msgRouterContainerName }} env: - name: NAMESPACE valueFrom: diff --git a/kubernetes/sdnc/charts/ueb-listener/values.yaml b/kubernetes/sdnc/charts/ueb-listener/values.yaml index d04ba099ff..a6722eb056 100644 --- a/kubernetes/sdnc/charts/ueb-listener/values.yaml +++ b/kubernetes/sdnc/charts/ueb-listener/values.yaml @@ -39,6 +39,8 @@ config: uebPort: 3904 mysqlChartName: sdnc-dbhost sdncChartName: sdnc + sdcbeChartName: sdc-be + msgRouterContainerName: dmaap configDir: /opt/onap/sdnc/data/properties @@ -62,7 +64,12 @@ readiness: periodSeconds: 10 service: - name: ueb-listener + name: sdnc-ueb-listener + +mysql: + service: + name: sdnc-dbhost + internalPort: 3306 ingress: enabled: false diff --git a/kubernetes/sdnc/resources/config/conf/dblib.properties b/kubernetes/sdnc/resources/config/conf/dblib.properties index 499834e0e2..15cb2182a2 100644 --- a/kubernetes/sdnc/resources/config/conf/dblib.properties +++ b/kubernetes/sdnc/resources/config/conf/dblib.properties @@ -19,7 +19,7 @@ # ============LICENSE_END========================================================= ### -# dblib.properrties +# dblib.properties org.onap.ccsdk.sli.dbtype=jdbc org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01 |