# Copyright © 2020 highstreet technologies GmbH
#
# 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:
  aafEnabled: true
  nodePortPrefix: 322
  k8scluster: svc.cluster.local
#################################################################
# Application configuration defaults.
#################################################################
# application image
image: "onap/sdnc-web-image:2.4.0"
pullPolicy: Always

config:
  sdncChartName: sdnc
  webProtocol: HTTPS
  webPlainProtocol: HTTP
  webPort: 8443
  webPlainPort: 8080
  sdnrProtocol: https
  sdnrPlainProtocol: http
  sdnrHost: "sdnc"
  sdnrPlainHost: "sdnc"
  sdnrPort: "8443"
  sdnrPlainPort : "8080"
  sslCertDir: "/opt/app/osaaf/local/certs"
  sslCertiticate: "cert.pem"
  sslCertKey: "key.pem"
  oauth:
    enabled: false
    odluxRbac:
      enabled: false
  transportpce:
    enabled: false
    transportpceUrl: http://transportpce.transportpce:8181
  topologyserver:
    enabled: false
    topologyserverUrl: http://toplogy-api-service.topology:3001
    tileserverUrl: https://tile.openstreetmap.org


#################################################################
# aaf configuration defaults.
#################################################################
certInitializer:
  nameOverride: sdnc-web-cert-initializer
  fqdn: "sdnc"
  app_ns: "org.osaaf.aaf"
  fqi: "sdnc@sdnc.onap.org"
  fqi_namespace: "org.onap.sdnc"
  public_fqdn: "sdnc.onap.org"
  aafDeployFqi: "deployer@people.osaaf.org"
  aafDeployPass: demo123456!
  cadi_latitude: "38.0"
  cadi_longitude: "-72.0"
  credsPath: /opt/app/osaaf/local
  aaf_add_config: >
    cd /opt/app/osaaf/local;
    mkdir -p certs;
    export $(/opt/app/aaf_config/bin/agent.sh local showpass | grep '^c' | xargs -0);
    keytool -exportcert -rfc -file certs/cacert.pem -keystore {{ .Values.fqi_namespace }}.trust.jks -alias ca_local_0 -storepass $cadi_truststore_password;
    openssl pkcs12 -in {{ .Values.fqi_namespace }}.p12 -out certs/cert.pem -passin pass:$cadi_keystore_password_p12 -passout pass:$cadi_keystore_password_p12;
    cp {{ .Values.fqi_namespace }}.key certs/key.pem;
    chmod -R 755 certs;

# default number of instances
replicaCount: 1

nodeSelector: {}

affinity: {}

# probe configuration parameters
liveness:
  initialDelaySeconds: 180
  periodSeconds: 10
  # necessary to disable liveness probe when setting breakpoints
  # in debugger so K8s doesn't restart unresponsive container
  enabled: true

readiness:
  initialDelaySeconds: 60
  periodSeconds: 10

service:
  name: sdnc-web
  suffix: service
  type: NodePort
  sessionAffinity: ClientIP
  # for liveness and readiness probe only
  # internalPort:
  internalPort: 8443
  internalPlainPort: 8080
  ports:
  - name: http-sdnc-web
    port: "8443"
    plain_port: "8080"
    port_protocol: http
    nodePort: "05"

#ingress:
#  enabled: false

#Resource limit flavor -By default using small
flavor: small
#segregation for different environment (small and large)
resources:
  small:
    limits:
      cpu: 1
      memory: 1Gi
    requests:
      cpu: 0.5
      memory: 500Mi
  large:
    limits:
      cpu: 2
      memory: 2Gi
    requests:
      cpu: 1
      memory: 1Gi
  unlimited: {}

#Pods Service Account
serviceAccount:
  nameOverride: sdnc-web
  roles:
    - read
