Common Administrative Tasks

Operational procedures for a running self-managed JuliaHub installation. These apply to all installation methods unless noted otherwise.

For configuring the platform itself — authentication, registries, credentials — see Admin Settings.

Running `kubectl`

The commands below assume kubectl is configured against the cluster running JuliaHub, and that you pass -n <namespace> (or set a default namespace) matching where JuliaHub is installed. On an Embedded Cluster installation, run them from the host machine; the namespace is default unless you changed it.

Restarting services

JuliaHub runs as a set of cooperating services. Restarting them is a common first step when diagnosing a problem, and is occasionally requested by JuliaHub support.

To restart every platform service:

kubectl rollout restart deploy

To restart a single service — for example the main API server:

kubectl rollout restart deploy/teamsrvr

Restarts are rolling, so a single-service restart is generally non-disruptive. Restarting everything briefly interrupts in-flight requests.

Generating a support bundle

When you open a support ticket, JuliaHub will usually ask for a support bundle — an archive of logs and cluster resource information used to diagnose the issue.

On installations managed through the Replicated Admin Console, open the console and use the Troubleshoot tab to generate a bundle. If the installation has outbound internet access, the console can upload the bundle to JuliaHub directly; otherwise download it and attach it to your ticket.

For Helm-based installations without the Admin Console, collect logs for the affected services and attach them to your ticket:

kubectl logs deploy/teamsrvr --tail=10000 > teamsrvr.log
Review before sharing

Support bundles and logs can contain hostnames, usernames, and other environment details. Review the contents if your organization restricts what may be shared externally.

Expanding the configuration volume

If the configuration volume fills up, its persistent volume can be expanded. This applies to installations using dynamic volume provisioning.

1. Confirm the storage class allows expansion

The StorageClass backing the volume must support expansion. Check the ALLOWVOLUMEEXPANSION column:

kubectl get storageclass <storage-class-name>
NAME                 PROVISIONER          RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
longhorn (default)   driver.longhorn.io   Delete          Immediate           true                   34m

If this reads false, the volume cannot be expanded in place and the data must be migrated to a volume on a storage class that supports expansion.

2. Request a larger size

Increase the requested storage size in your installation's configuration — the Storage section of the Admin Console, or the corresponding value in your Helm values file — then apply the updated configuration.

3. Scale down the workloads

The volume will not resize while workloads are mounting it. Stop them:

kubectl scale deployment -l app.kubernetes.io/part-of=juliahub --replicas=0
kubectl delete job -l app.kubernetes.io/part-of=juliahub
kubectl scale statefulset/redis --replicas=0
kubectl scale statefulset/postgres --replicas=0
This is an outage

JuliaHub is unavailable from this point until step 5 completes. Plan a maintenance window.

4. Wait for the resize

Resizing may take several minutes. Watch progress and confirm the new capacity:

kubectl describe pvc juliahub-config-dynamic
kubectl get pvc juliahub-config-dynamic
NAME                      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
juliahub-config-dynamic   Bound    pvc-e871b6f0-cad5-46ca-b672-a1af44e35e1c   100Gi      RWX            longhorn       50m

5. Scale the workloads back up

kubectl scale deployment -l app.kubernetes.io/part-of=juliahub --replicas=1
kubectl scale statefulset/redis --replicas=1
kubectl scale statefulset/postgres --replicas=1

Verify the platform is reachable and healthy before ending the maintenance window.

Resetting the Admin Console password

This applies to installations managed through the Replicated Admin Console, and resets the Admin Console password only — not any JuliaHub user password.

kubectl kots reset-password -n <namespace>

Use default as the namespace on an Embedded Cluster installation.

Lost JuliaHub credentials

If a JuliaHub platform password is lost and no administrator can reset it through Users & Groups, open a support ticket — it cannot be reset with the command above.