Helm Deployment Configuration

Deploy the RTFS service on Kubernetes using the Helm chart's image, database, and scaling settings.

This reference covers the Helm chart configuration for deploying the Repository Federation Service (RTFS) on Kubernetes.

Chart Location

The Helm chart is located at artifactory-federation/helm-chart/stable/artifactory-federation/.

Image Configuration

The following parameters configure the RTFS container image.

ParameterDefaultDescription
global.imageRegistry""Global image registry override.
global.imagePullSecrets[]Global image pull secrets.
image.registryreleases-docker.jfrog.ioRTFS image registry.
image.repositoryjfrog/artifactory-federationRTFS image repository.
image.pullPolicyIfNotPresentImage pull policy.
image.tag""Image tag (defaults to chart appVersion).
imagePullSecrets[]Additional image pull secrets.

Service Configuration

The following parameters configure the RTFS service.

ParameterDefaultDescription
jfrogUrl""URL of the JFrog Platform. Required.
replicaCount1Number of RTFS replicas.
internalRestPort8025Internal REST API port.
apiContextrtfsAPI context path.
fullnameOverride""Override the full resource name.

Autoscaling

The following parameters configure horizontal pod autoscaling for RTFS.

ParameterDefaultDescription
autoscaling.enabledfalseEnable horizontal pod autoscaling.
autoscaling.minReplicas1Minimum replicas.
autoscaling.maxReplicas11Maximum replicas.
autoscaling.targetCPU""Target CPU utilization percentage.
autoscaling.targetMemory""Target memory utilization percentage.

Database

The following parameters configure the RTFS database connection. See RTFS Database Requirements for provisioning steps.

ParameterDefaultDescription
database.typepostgresqlDatabase type.
database.driverorg.postgresql.DriverJDBC driver class.
database.url""JDBC connection URL. Required.
database.username""Database username. Required.
database.password""Database password. Required.

Persistence

The following parameters configure RTFS data persistence.

ParameterDefaultDescription
persistence.mountPath/var/opt/jfrog/federationData mount path inside the container.
persistence.federationPropertiesAdditional RTFS properties to inject (key-value pairs from application.properties).

Use persistence.federationProperties to override any RTFS application.properties value at deployment time:

persistence:
  federationProperties:
    rtfs.full.sync.batch.size: "5000"
    rtfs.auto.healing.enabled: "true"
    rtfs.reactive.http.client.connect.timeout.sec: "300"

Kubernetes Service

The following parameters configure the Kubernetes service for RTFS.

ParameterDefaultDescription
service.typeClusterIPKubernetes service type.
service.restPort8025REST API service port.
service.grpcPort8026gRPC service port.
service.loadBalancerSourceRanges[]Load balancer source ranges.
service.externalIPs[]External IPs.
service.externalTrafficPolicyClusterExternal traffic policy.
service.loadBalancerIP""Load balancer IP.
service.labelsAdditional service labels.
service.annotationsAdditional service annotations.

JVM Options

The following parameters configure JVM options for RTFS.

ParameterDefaultDescription
javaOpts""Additional JVM options (for example, -Xms2g -Xmx4g).
extraEnvironmentVariables[]Additional environment variables.

Pod Configuration

The following parameters configure RTFS pod settings.

ParameterDefaultDescription
podLabelsAdditional pod labels.
deploymentLabelsAdditional deployment labels.
resourcesCPU and memory requests and limits.
extraVolumeMounts[]Additional volume mounts.

Pod Security Context

The following parameters configure the pod security context for RTFS.

ParameterDefaultDescription
podSecurityContext.enabledtrueEnable pod security context.
podSecurityContext.runAsNonRoottrueRun as non-root user.
podSecurityContext.runAsUser1030User ID.
podSecurityContext.runAsGroup1030Group ID.
podSecurityContext.fsGroup1030FS group ID.

Router Sidecar

The following parameters configure the router sidecar container.

ParameterDefaultDescription
router.namerouterRouter container name.
router.image.registryreleases-docker.jfrog.ioRouter image registry.
router.image.repositoryjfrog/routerRouter image repository.
router.image.tag7.205.10Router image tag.
router.serviceRegistry.insecurefalseDisable TLS for service registry.
router.internalPort8046Router internal port.
router.externalPort8082Router external port.
router.tlsEnabledfalseEnable TLS.

Observability

The following parameter enables observability features for RTFS.

ParameterDefaultDescription
observability.enabledfalseEnable observability features.

Probes

The following parameter configures the timeout for liveness and readiness probes.

ParameterDefaultDescription
probes.timeoutSeconds5Timeout for liveness and readiness probes.

RTFS exposes the following probe endpoints:

  • Liveness: /rtfs/api/v1/system/liveness
  • Readiness: /rtfs/api/v1/system/readiness

Ingress

The following parameter enables ingress for RTFS.

ParameterDefaultDescription
ingress.enabledfalseEnable ingress.

Prometheus Service Monitor

The following parameters configure the Prometheus ServiceMonitor.

ParameterDefaultDescription
serviceMonitor.enabledtrueEnable Prometheus ServiceMonitor.
serviceMonitor.interval60sScrape interval.
serviceMonitor.scrapeTimeout15sScrape timeout.
serviceMonitor.jobLabelfederation-metricsJob label.
serviceMonitor.kubePromAppfederationkube-prometheus app label.
serviceMonitor.kubePromFullNamefederationkube-prometheus full name label.

Production Recommendations

Based on the automation templates, a production deployment typically uses the following resource settings.

ResourceValue
CPU requests4
CPU limits6
Memory requests8Gi
Memory limits12Gi
Node affinitypool_type: federated
Tolerationspool_type=federated:NoSchedule

Related Topics


Did this page help you?