frank-console

The Frank!Framework console is a web application that allows you to manage multiple instances of Frank!Framework from a single console.

0.5.1
frankframeworktestingconsoledashboard

🔌Frank!Framework Console Chart

The Frank!Framework Console is a web application that allows you to manage multiple instances of Frank!Framework from a single console.

Usage

Helm must be installed to use the charts. Please refer toHelm's documentation to get started.

Once Helm has been set up correctly, add the repo as follows:

helm repo add frankframework https://frankframework.github.io/charts

If you had already added this repo earlier, run helm repo update to retrieve the latest versions of the packages. You can then run helm search repo frankframework to see the charts.

To install the frankframework chart:

helm install my-frank-console frankframework/frank-console

To uninstall the chart:

helm delete my-frank-console

Parameters

Common parameters

Common parameters for the Frank!Framework Console chart.

Can be used to override the default name for the chart.

NameDescriptionValue
nameOverrideString to partially override fullname template (will maintain the release name)""
fullnameOverrideString to fully override fullname template""

Frank!Framework Console image parameters

The image is pulled from nexus.frankframework.org by default. The images located there will be kept for as long as possible.

Here are the images available: https://nexus.frankframework.org/#browse/browse:frankframework-docker:v2%2Ffrankframework%2Ftags/

If you want to use a specific nightly, you can use the images on docker.io: https://hub.docker.com/r/frankframework/frankframework/tags

NameDescriptionValue
image.registryFrank!Framework Console image registrynexus.frankframework.org
image.repositoryFrank!Framework Console image repositoryfrank-console
image.tagFrank!Framework Console image tag (immutable tags are recommended)""
image.pullPolicyFrank!Framework Console image pull policyIfNotPresent
image.pullPolicySpecify a imagePullPolicy
image.pullPolicyDefaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
image.pullPolicyref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
image.pullSecretsFrank!Framework Console image pull secrets[]
image.pullSecretsOptionally specify an array of imagePullSecrets.
image.pullSecretsSecrets must be manually created in the namespace.
image.pullSecretsref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
image.pullSecretsExample is shown in the values.yaml file

Environment variables

The environment variables are used to configure the Frank!Framework.

It is possible to add environment variables with the .Values.environmentVariables parameter and to add environment variables from a configmap or secret with the .Values.envFrom parameter.

In the case you are testing this Chart, you'd probably want to disable the authentication for the console and the testtool (Ladybug). To do so, you can set the following environment variables:

environmentVariables:
application.security.console.authentication.type: NONE
application.security.testtool.authentication.type: NONE

To fine tune memory refer to the Oracle documentation.

Refer to the Frank!Framework Manual for more information.

NameDescriptionValue
environmentVariablesSet environment variables for the Frank!Framework{}
environmentVariables.JAVA_OPTSSet the JAVA_OPTS for the Frank!Framework-XX:MaxRAMPercentage=80.0
envFromSet environment variables from configmaps or secrets[]
envFromExample is shown in the values.yaml file

Generate ConfigMaps and Secrets

To deploy the Frank!Framework Console, it can be needed to add some files to the container.

The Frank!Framework Console chart allows you to generate configmaps and secrets from values. This is useful if you want to add local users or other authentication to the Frank!Framework Console.

Be sure to set a subPath and a mountPath if you want to avoid conflicts and use multiple secrets. With one secret, the subPath and mountPath are not needed. And it would be possible to implement items

NameDescriptionValue
generateConfigMapGenerate configmaps from values{}
generateConfigMapExample is shown in the values.yaml file
generateConfigMap.nameName of the configmapundefined
generateConfigMap.optionalMark the configmap as optional (default false)undefined
generateConfigMap.defaultModeDefault mode of the configmap (default 0644)undefined
generateConfigMap.itemsItems of the configmapundefined
generateConfigMap.items.keyKey of the configmapundefined
generateConfigMap.items.pathPath of the configmapundefined
generateConfigMap.items.modeMode of the configmapundefined
generateConfigMap.mountPathPath where the configmap will be mounted (default /opt/frank/secrets)undefined
generateConfigMap.readOnlyReadOnly of the configmap (default true)undefined
generateConfigMap.dataData of the configmapundefined
generateSecretGenerate secrets from values{}
generateSecretExample is shown in the values.yaml file
generateSecret.nameName of the secretundefined
generateSecret.typeType of the secret (default Opaque)undefined
generateSecret.optionalMark the secret as optional (default false)undefined
generateSecret.itemsItems of the secretundefined
generateSecret.items.keyKey of the secretundefined
generateSecret.items.pathPath of the secretundefined
generateSecret.items.modeMode of the secretundefined
generateSecret.mountPathPath where the secret will be mounted (default /opt/frank/secrets)undefined
generateSecret.readOnlyReadOnly of the secret (default true)undefined
generateSecret.dataData of the secretundefined
generateSecret.stringDataStringData of the secretundefined

Volumes

The Frank!Framework chart allows you to create and mount volumes to the Frank!Framework. This is useful if you want to add existing local users or authentication to the Frank!Framework.

NameDescriptionValue
extraVolumesOptionally specify extra list of additional volumes for WordPress pods[]
extraVolumeMountsOptionally specify extra list of additional volumeMounts for WordPress container(s)[]

Sidecars

The Frank!Framework chart allows you to add additional sidecar containers to the Frank!Framework pod. This is useful if you want to add additional tools to the Frank!Framework.

NameDescriptionValue
sidecarsAdd additional sidecar containers to the Frank!Framework pod[]
sidecarsExample is shown in the values.yaml file
initContainersAdd additional init containers to the Frank!Framework pod[]
initContainersref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
initContainersExample is shown in the values.yaml file

Ladybug Database

The Ladybug Database is a PostgreSQL dependency that is used to store Ladybug reports and is not needed when the Ladybug is disabled.

Note that this dependency is not used for the Frank!Framework itself, that datasource should be configured with the resources.yaml file.

The dependency is enabled by default, but can be disabled if you want to use an external database for Ladybug.

To configure the PostgreSQL Helm chart, please refer to the documentation: https://github.com/bitnami/charts/tree/main/bitnami/postgresql

Some of the parameters are pre-configured for an easy installation, but can be changed if needed.

NameDescriptionValue
ladybugDatabase.auth.existingSecretName of the secret""

Frank!Framework Console deployment parameters

The startup probe will enable blue-green deployment, which are great for uptime during upgrades and such. It (and the liveness probe) will check if the console is accessible, until a better health endpoint is available. The readiness probe will check if all adapters are running using the server health endpoint

NameDescriptionValue
replicaCountNumber of Frank!Framework Console replicas to deploy1
replicaCountNOTE: ReadWriteMany PVC(s) are required if replicaCount > 1
startupProbeConfigure the startup probe
startupProberef: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
startupProbe.initialDelaySecondsInitial delay seconds for startupProbe10
startupProbe.periodSecondsPeriod seconds for startupProbe10
startupProbe.timeoutSecondsTimeout seconds for startupProbe1
startupProbe.failureThresholdFailure threshold for startupProbe42
startupProbe.successThresholdSuccess threshold for startupProbe1
startupProbe.httpGet.pathPath for startupProbe/
startupProbe.httpGet.portPort for startupProbe8080
livenessProbeConfigure the liveness probe
livenessProberef: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
livenessProbe.initialDelaySecondsInitial delay seconds for livenessProbe0
livenessProbe.periodSecondsPeriod seconds for livenessProbe10
livenessProbe.timeoutSecondsTimeout seconds for livenessProbe1
livenessProbe.failureThresholdFailure threshold for livenessProbe12
livenessProbe.successThresholdSuccess threshold for livenessProbe1
livenessProbe.httpGet.pathPath for livenessProbe/
livenessProbe.httpGet.portPort for livenessProbe8080
readinessProbeConfigure the readiness probe{}
readinessProberef: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
resourcesSet the resources for the Frank!Framework Console containers{}
resourcesref: https://kubernetes.io/docs/user-guide/compute-resources/
resourcesExample is shown in the values.yaml file
terminationGracePeriodSecondsNumber of seconds after which pods are forcefully killed60
terminationGracePeriodSecondsNote: Lower values may cause running adapters to fail
nodeSelectorNode labels for pod assignment{}
nodeSelectorref: https://kubernetes.io/docs/user-guide/node-selection/
tolerationsSet tolerations for pod assignment[]
tolerationsref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
affinitySet affinity for pod assignment{}
affinityRef: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
affinityNOTE: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
timeZoneused for database connection and log timestampsEtc/UTC

Traffic Exposure Parameters

NameDescriptionValue
service.typeFrank!Framework Console service typeClusterIP
service.portFrank!Framework Console service port80
service.annotationsAdditional annotations for the Frank!Framework Console service{}
ingressref: https://kubernetes.io/docs/concepts/services-networking/ingress/
ingress.enabledEnable ingress record generation for Frank!false
ingress.classNameIngressClass that will be used to implement the Ingress (Kubernetes 1.18+)""
ingress.classNameThis is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
ingress.classNameref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
ingress.annotationsAdditional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.{}
ingress.annotationsFor a full list of possible ingress annotations, please see
ingress.annotationsref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md
ingress.annotationsUse this parameter to set the required annotations for cert-manager, see
ingress.annotationsref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
ingress.annotationsExample is shown in the values.yaml file
ingress.hostsSet hosts for ingress{}
ingress.hosts.hostSet hostnameundefined
ingress.hosts.pathsSet multiple pathsundefined
ingress.hosts.paths.pathSet path (context url)undefined
ingress.hosts.paths.pathTypeSet type of pathundefined
ingress.tlsDefine tls secrets for hosts{}
ingress.tlsExample is shown in the values.yaml file

Other Parameters

NameDescriptionValue
serviceAccountref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
serviceAccount.createEnable creation of ServiceAccount for Frank!Framework Console podtrue
serviceAccount.annotationsAdditional custom annotations for the ServiceAccount{}
serviceAccount.nameThe name of the ServiceAccount to use.""
podAnnotationsAnnotations for Frank!Framework Console pods.{}
podAnnotationsref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
podLabelsExtra labels for Frank!Framework Console pods.{}
podLabelsref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
podSecurityContextSet Frank!Framework Console pod's Security Context.{}
podSecurityContextref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
securityContextSet Frank!Framework Console container's Security Context.{}
securityContextref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
securityContextExample is shown in the values.yaml file

Configuration and installation details

For now, the Frank!Framework Console is not configurable. It only works if used as a sub-chart in the Frank!Framework chart. It is planned to make it configurable in the future. And you could create and mount your worn hazelcast-network-config.xml file.

Application Version

8.3.0-SNAPSHOT

Chart Versions

0.5.1 - 07/11/2024
0.5.0 - 10/10/2024
0.4.1 - 26/09/2024
0.4.0 - 23/09/2024
0.1.3 - 03/09/2024
0.1.2 - 02/09/2024
0.1.1 - 27/08/2024
0.1.0 - 23/08/2024