Configuring CHF Diameter Adapter Properties

After initial deployment of CHF Diameter Adapter, you can customize the configuration.

You can configure CHF Diameter Adapter using YAML code that is typically supplied in the Helm values file.

The following subsections describe the configuration properties for CHF Diameter Adapter Converged Charging Microservice and Spending Limit Control Microservice. The following is an example configuration for the Converged Charging Microservice:
matrixx-app:
  # Name of the application.
  applicationName: "chf-diameter-adapter"

  namespaceOverride: "matrixx"

  # -- Same as nameOverride but for the partOf.
  partOfOverride: "MATRIXX"

  version: ${version}

  globalRegistry: "localhost:32000"

  ##########################################################
  # Deployment
  ##########################################################
  deployment:
    enabled: true
    containers:
      chf-diameter-adapter:
        image:
          repository: nf-chf-diameter-adapter
          tag: ${project.version}
          pullPolicy: IfNotPresent
        env:
          OTEL_SDK_DISABLED:
            value: "true"
        ports:
          8080:
            name: http
            protocol: TCP
        readinessProbe:
          httpGet:
            path: /health
            port: http
        livenessProbe:
          httpGet:
            path: /health
            port: http
        resources:
          limits:
            cpu: 4
          requests:
            cpu: 250m
        terminationMessagePolicy: FallbackToLogsOnError


  ##########################################################
  # Service object for servicing pods
  ##########################################################
  service:
    enabled: true
    ports:
      80:
        name: http
        protocol: TCP
        targetPort: http
    type: ClusterIP

  ##########################################################
  # Ingress object for exposing services
  ##########################################################
  ingress:
    enabled: false

    # Name of the ingress class
    ingressClassName: ''

    # Port of the service that serves pods
    servicePort: http

    #Set pathType: default is ImplementationSpecific; Options: Exact, Prefix
    pathType: ImplementationSpecific

    # List of host addresses to be exposed by this Ingress
    hosts:
      chf-diameter-adapter-example.local:
        paths:
          chf-diameter-adapter:
            path: /
            serviceName: chf-diameter-adapter
            pathType: ImplementationSpecific
            servicePort: 80
      slc-diameter-adapter-example.local:
        paths:
          slc-diameter-adapter:
            path: /
            serviceName: slc-diameter-adapter
            pathType: ImplementationSpecific
            servicePort: 80

    # Additional labels for this Ingress
    additionalLabels: { }

    # Add annotations to this Ingress
    annotations: { }
    # kubernetes.io/ingress.class: external-ingress
    # ingress.kubernetes.io/rewrite-target: /
    # ingress.kubernetes.io/force-ssl-redirect: true

    # TLS details for this Ingress
    tls: []

  ##########################################################
  # autoscaling is used for horizonal pod autoscaling
  ##########################################################
  autoscaling:
    # enabled is a boolean flag for enabling or disabling autoscaling
    enabled: false
    minReplicas: 1
    # maxReplicas sets the maximum number of replicas
    maxReplicas: 100
    # metrics is the list of metrics used for hpa
    metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 80
      - type: Resource
        resource:
          name: memory
          target:
            type: Utilization
            averageUtilization: 80

  ##########################################################
  # Service Monitor to collect Prometheus metrices
  ##########################################################
  serviceMonitor:
    enabled: false
    # Additional labels
    additionalLabels: { }
    # Additional annotations
    annotations: { }
    # List of the endpoints of service from which prometheus will scrape data
    endpoints:
      - port: http
        interval: 10s
        honorLabels: true
        path: /metrics
        relabelings:
          - sourceLabels: [ __meta_kubernetes_pod_node_name ]
            targetLabel: node_name
          - sourceLabels: [ __meta_kubernetes_pod_host_ip ]
            targetLabel: node_ip
Next is an example configuration for the Spending Limit Control Microservice:
matrixx-app:
  # Name of the application.
  applicationName: "slc-diameter-adapter"

  namespaceOverride: "matrixx"

  # -- Same as nameOverride but for the partOf.
  partOfOverride: "MATRIXX"

  version: ${version}

  globalRegistry: "localhost:32000"

  ##########################################################
  # Deployment
  ##########################################################
  deployment:
    enabled: true
    containers:
      slc-diameter-adapter:
        image:
          repository: nf-slc-diameter-adapter
          tag: ${project.version}
          pullPolicy: IfNotPresent
        env:
          OTEL_SDK_DISABLED:
            value: "true"
        ports:
          8080:
            name: http
            protocol: TCP
        readinessProbe:
          httpGet:
            path: /health
            port: http
        livenessProbe:
          httpGet:
            path: /health
            port: http
        resources:
          limits:
            cpu: 4
          requests:
            cpu: 250m
        terminationMessagePolicy: FallbackToLogsOnError


  ##########################################################
  # Service object for servicing pods
  ##########################################################
  service:
    enabled: true
    ports:
      80:
        name: http
        protocol: TCP
        targetPort: http
    type: ClusterIP


  ##########################################################
  # Ingress object for exposing services
  ##########################################################
  ingress:
    enabled: false

    # Name of the ingress class
    ingressClassName: ''

    # Port of the service that serves pods
    servicePort: http

    # Set pathType: default is ImplementationSpecific; Options: Exact, Prefix
    pathType: ImplementationSpecific

    # Map of host addresses to be exposed by this Ingress
    hosts:
      slc-diameter-adapter-example.local:
        paths:
          slc-diameter-adapter:
            path: /
            serviceName: slc-diameter-adapter
            pathType: ImplementationSpecific
            servicePort: 80
      chf-diameter-adapter-example.local:
        paths:
          chf-diameter-adapter:
            path: /
            serviceName: chf-diameter-adapter
            pathType: ImplementationSpecific
            servicePort: 80

    # Additional labels for this Ingress
    additionalLabels: { }

    # Add annotations to this Ingress
    annotations: { }
    # kubernetes.io/ingress.class: external-ingress
    # ingress.kubernetes.io/rewrite-target: /
    # ingress.kubernetes.io/force-ssl-redirect: true

    # TLS details for this Ingress
    tls: []


    ##########################################################
  # autoscaling is used for horizonal pod autoscaling
  ##########################################################
  autoscaling:
    # enabled is a boolean flag for enabling or disabling autoscaling
    enabled: false
    minReplicas: 1
    # maxReplicas sets the maximum number of replicas
    maxReplicas: 100
    # metrics is the list of metrics used for hpa
    metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 80
      - type: Resource
        resource:
          name: memory
          target:
            type: Utilization
            averageUtilization: 80

  ##########################################################
  # Service Monitor to collect Prometheus metrices
  ##########################################################
  serviceMonitor:
    enabled: false
    # Additional labels
    additionalLabels: { }
    # Additional annotations
    annotations: { }
    # List of the endpoints of service from which prometheus will scrape data
    endpoints:
      - port: http
        interval: 10s
        honorLabels: true
        path: /metrics
        relabelings:
          - sourceLabels: [ __meta_kubernetes_pod_node_name ]
            targetLabel: node_name
          - sourceLabels: [ __meta_kubernetes_pod_host_ip ]
            targetLabel: node_ip