kubealex / k8s-mediaserver-operator

Repository for k8s Mediaserver Operator project
MIT License
569 stars 77 forks source link

[FR]Configure URL Base #95

Open anothersmith opened 10 months ago

anothersmith commented 10 months ago

Ive been struggling to set this up for a while with sonarr and radarr just loading blank pages. Ended up having to deploy everything, jump on the NFS server update the url base in the configs and then restart the containers

Would be great if we could set this in the my-values.yaml file

anothersmith commented 10 months ago

I actually think this may just be a bug not a fr

kubealex commented 10 months ago

Hi @anothersmith! Thank you for reporting this :) Can you share the media server CR you used to deploy it? URL and base path is configured via initcontainers for all pieces, it would be great if you can share one of the broken configs to look into that a bit deeper.

Thank you!

anothersmith commented 10 months ago

my-values.yaml

general:
  ingress_host: media.local
  image_tag: arm64v8-latest
  storage:
    customVolume: true
    volumes:
      nfs:
        server: 192.168.0.5
        path: /opt/plexmedia
plex:
  enabled: false

the configs are then generated like this;

  <BindAddress>*</BindAddress>
  <Port>8989</Port>
  <SslPort>9898</SslPort>
  <EnableSsl>False</EnableSsl>
  <LaunchBrowser>True</LaunchBrowser>
  <ApiKey>******************</ApiKey>
  <AuthenticationMethod></AuthenticationMethod>
  <AuthenticationRequired></AuthenticationRequired>
  <Branch>main</Branch>
  <LogLevel>info</LogLevel>
  <SslCertPath></SslCertPath>
  <SslCertPassword></SslCertPassword>
  <UrlBase></UrlBase>
  <InstanceName>Sonarr</InstanceName>
  <UpdateMechanism>Docker</UpdateMechanism>
</Config>

I had expected the URL base to populate from the default values

D4M13N-D3V commented 9 months ago

I am having the same issue, if i figure out how to resolve it ill post here

InWithTheNew commented 8 months ago

Maybe a little late to the party, but I had this problem for a while and read through the initContainer function.

In *arr-resources.yaml, the init container is this:

apiVersion: v1
data:
  config.xml: |
    <Config>
      <UrlBase>{{ .Values.sonarr.ingress.path }}</UrlBase> // here sets the UrlBase
    </Config>
  init-sonarr.sh: |
    #!/bin/bash
    echo "### Initializing config ###"
    if [ ! -f /sonarr-config/config.xml ]; then
      cp -n /init-sonarr/config.xml /sonarr-config/config.xml
      echo "### No configuration found, intialized with default settings ###"
    fi
kind: ConfigMap
metadata:
  name: init-sonarr-cm

This is supposed to save to a shared volume between that and the main container. This only gets created if we specify the container in our values file.

So for me this'd look like Values.yaml

radarr:
  enabled: true
  volume:
    name: radarr-config
    storageClassName: "local-path"
    accessModes: ReadWriteOnce
    storage: 5Gi

Hope it helps.