Configuring CHF Proxy
After initial deployment of CHF Proxy, you can customize the configuration.
You can configure CHF Proxy using YAML code that is typically supplied in the Helm values file. To display a Helm
values file, run a command like in the following example:
helm show values matrixx/chf-proxy --version version_number
To render
Helm chart templates locally and display the output, run a command like in the following
example:helm template my-release matrixx/chf-proxy --version version_number -n matrixx
The following subsections describe application-specific configuration properties for CHF Proxy. This is an example
configuration:
matrixx-app:
# Name of the application.
applicationName: "chf-proxy"
namespaceOverride: "matrixx"
# -- Same as nameOverride but for the partOf.
partOfOverride: "MATRIXX"
version: ${version}
globalRegistry: "localhost:32000"
##########################################################
# Deployment
##########################################################
deployment:
enabled: true
# Volumes to be added to the pod
volumes:
chf-proxy-config:
configMap:
name: chf-proxy-config
containers:
chf-proxy:
image:
repository: chf-proxy
tag: ${project.version}
pullPolicy: IfNotPresent
env:
VERTX_CONFIG_PATH:
value: "/opt/mtx/conf/chf-proxy.yaml"
OTEL_SDK_DISABLED:
value: "true"
ports:
8080:
name: http
protocol: TCP
readinessProbe:
httpGet:
path: /ready
port: http
livenessProbe:
httpGet:
path: /health
port: http
resources:
limits:
cpu: 4
requests:
cpu: 250m
terminationMessagePolicy: FallbackToLogsOnError
# Role Based Access Control
rbac:
enabled: true
# Service Account to use by pods
serviceAccount:
enabled: true
name: "chf-proxy"
# Additional Labels on service account
additionalLabels: { }
# Annotations on service account
annotations: { }
# key: value
# Create Roles (Namespaced)
roles:
basic:
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- list
- get
- watch
##########################################################
# Service object for servicing pods
##########################################################
service:
enabled: true
ports:
80:
name: http
protocol: TCP
targetPort: http
type: ClusterIP
#type: LoadBalancer
#loadBalancerIP: 192.168.0.1
##########################################################
# 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:
chf-chart-example.local:
paths:
chf-proxy:
path: /
serviceName: chf-proxy
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: []
##########################################################
# Additional ConfigMaps
##########################################################
configMap:
enabled: false
annotations: { }
##########################################################
# 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