# Copyright © 2020 Nordix Foundation
# Modifications Copyright © 2020 Nokia
#
# 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.

#################################################################
#
# These overrides will affect all helm charts (ie. applications)
# that are listed below and are 'enabled'.
#
#
# This is specifically for the environments which take time to
# deploy ONAP. This increase in timeouts prevents false restarting of
# the pods during startup configuration.
#
# These timers have been tuned by the ONAP integration team. They
# have been tested and validated in the ONAP integration lab (Intel/Windriver lab).
# They are however indicative and may be adapted to your environment as they
# depend on the performance of the infrastructure you are installing ONAP on.
#
# Please note that these timers must remain reasonable, in other words, if
# your infrastructure is not performant enough, extending the timers to very
# large value may not fix all installation issues on over subscribed hardware.
#
#################################################################
global:
  cmpv2Enabled: true
  CMPv2CertManagerIntegration: true
  platform:
    certServiceClient:
      envVariables:
        # Certificate related
        cmpv2Organization: "Linux-Foundation"
        cmpv2OrganizationalUnit: "ONAP"
        cmpv2Location: "San-Francisco"
        cmpv2State: "California"
        cmpv2Country: "US"
        # Client configuration related
        caName: "RA"
