Giter VIP home page Giter VIP logo

charts's Introduction

Join Discord Join Forums File Issue

iX Official Catalog

A curated collection of TrueNAS SCALE enhanced Helm charts.

TrueNAS SCALE Chart Structure

A TrueNAS SCALE chart repository differs slightly in directory structure from upstream repos in that it includes an app version directory.

A TrueNAS SCALE chart also has three additional files an app-readme.md file that provides a high level overview display in the TrueNAS SCALE UI and a questions.yaml file defining questions to prompt the user with and an item.yaml file outlining item specific details.

There are 2 directories charts and test, each representing a train. Chart releases created from catalog items in a specific train cannot be moved to another train. Currently only the charts train can be used inside the UI.

charts/ix-chart/<chart version>/
  app-readme.md            # TrueNAS SCALE Specific: Readme file for display in TrueNAS SCALE UI
  charts/                  # Directory containing dependency charts
  Chart.yaml               # Required Helm chart information file
  questions.yaml           # TrueNAS SCALE Specific: File containing questions for TrueNAS SCALE UI
  README.md                # Optional: Helm Readme file (will be rendered in TrueNAS SCALE UI as well)
  templates/               # A directory of templates that, when combined with values.yml will generate K8s YAML
  values.yaml              # The default configuration values for this chart

See the upstream Helm chart developer reference for a complete walk through of developing charts.

To convert an upstream chart to take advantage of TrueNAS SCALE enhanced UX, first create an item.yaml file. This file among other catalog item information provides a list of categories that this chart fits into. This helps users navigate and filtering when browsing the catalog UI.

$ cat charts/ix-chart/item.yaml
categories:
  - generic
icon_url: "http://ix_url"

After that create app-readme.md file.

$ cat charts/ix-chart/<chart version>/app-readme.md

# iX-Chart

iX-chart is a chart designed to let user deploy a docker image in a TrueNAS SCALE kubernetes cluster.
It provides a mechanism to specify workload type, add external host interfaces in the pods, configure volumes and allocate host resources to the workload.

Then add a questions.yaml file to prompt the user for something.

groups:
  - name: "Container Images"
    description: "Image to be used for container"
questions:
  - variable: image
    label: "Docker Image"
    description: "Docker Image Details"
    group: "Container Images"
    schema:
      type: dict
      required: true
      attrs:
        - variable: repository
          description: "Docker image repository"
          label: "Image repository"
          schema:
            type: string
            required: true
        - variable: tag
          description: "Tag to use for specified image"
          label: "Image Tag"
          schema:
            type: string
            default: "latest"
        - variable: pullPolicy
          description: "Docker Image Pull Policy"
          label: "Image Pull Policy"
          schema:
            type: string
            default: "IfNotPresent"
            enum:
              - value: "IfNotPresent"
                description: "Only pull image if not present on host"
              - value: "Always"
                description: "Always pull image even if present on host"
              - value: "Never"
                description: "Never pull image even if it's not present on host"

The above will prompt the user with 2 text fields and a dropdown in the UI getting details for image configuration in a helm chart.

Question Variable Reference

Variable Type Required Description
variable string true define the variable name specified in the values.yamlfile.
label string true define the UI label.
description string false specify the description of the variable.
group string false group questions by input value.
schema dictionary true specify schema details for the variable
schema.type string true specify type of value for variable (current supported types are string, int, boolean, path, hostpath, list, dict, ipaddr, and cron).
schema.required bool false define if the variable is required or not (true \ false), defaults to false
schema.default object false specify the default value.
schema.min_length int false min character length for string type variable.
schema.max_length int false max character length for string type variable.
schema.min int false min integer length.
schema.max int false max integer length.
schema.enum []dictionary false specify the options when the variable type is string, for example,

enum:
- value: "RollingUpdate"
  description: "Create new pods and then kill old ones"
- value: "Recreate"
  description: "Kill existing pods before creating new ones"
schema.valid_chars string false regular expression for input chars validation.
schema.subquestions []subquestion false add an array of subquestions.
schema.show_if string false show current variable if condition specified is true, for example show_if: [["workloadType", "=", "CronJob"]]
schema.show_subquestions_if string false show subquestions if is true or equal to one of the options. for example show_subquestion_if: "static". system will convert this to the filters format specified for shcema.show_if automatically.
schema.attrs []variables false specified when schema.type is dictionary to declare attributes allowed in the dictionary.
schema.items []variables false specified when schema.type is list to declare attributes allowed in the list.
schema.private bool false specified for declaring information sensitive fields.
schema.null bool false specifies if the value for the variable can be null. defaults to false.

subquestions: subquestions[] cannot contain subquestions or show_subquestions_if keys, but all other keys in the above table are supported. Also variables having schema.type list do not support subquestions.

There are some novel cases where we would like to provide ability to configure / manage resources for workloads with getting some data from system dynamically. So a chart can specify certain actions to be performed by the system for a variable by defining a reference. An example better illustrates this concept:

- variable: volume
  label: "Volume"
  schema:
    type: dict
    $ref:
      - "normalize/ixVolume"
    attrs:
      - variable: mountPath
        label: "Mount Path"
        description: "Path where the volume will be mounted inside the pod"
        schema:
          type: path
          required: true
      - variable: datasetName
        label: "Dataset Name"
        schema:
          type: string
          required: true

In the above variable we define a $ref in schema which specifies that the system should take some action for normalizing the value specified for the variable. In this specific case, ix_volume is a concept introduced where we recommend using a volume which we are able to rollback automatically on chart release rollback. In essence, it is just a hostPath volume for which the system automatically creates the dataset specified.

We have following types of actions supported in $ref right now:

  1. definitions
  2. normalize

For (1), system will automatically update schema for a particular definition. For example,

- variable: hostInterface
  description: "Please specify host interface"
  label: "Host Interface"
  schema:
    type: string
    required: true
    $ref:
      - "definitions/interface"

System will automatically populate available interfaces for the user based on what interfaces are available on the system.

For (2), system will normalize values or perform some actions as discussed above.

charts's People

Contributors

aboyett avatar adrian-grimm avatar andor-pierdelacabeza avatar billm avatar bioqwer avatar bugclerk avatar cmillsa2 avatar compphy avatar deargle avatar derriick avatar dlsniper avatar erdii avatar g-a-c avatar ianmarmour avatar jbgosselin avatar jlsjonas avatar joshuacox avatar jwolvers avatar kmoore134 avatar qouo avatar qubad786 avatar rick-mesta avatar sonicaj avatar stavros-k avatar swensorm avatar tristanharms avatar undsoft avatar urkaz avatar xxyzz avatar yocalebo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

charts's Issues

Plex 1.7.7 hostpath validation breaks installs with external data mounts

The addition of hostpath validations break installs where a hostpath created in /mnt from an external share mounted using smb/nfs, rclone or mergerfs was being used as a data library.

Specifically in charts/plex/1.7.7/questions.yaml, the addition of
$ref:
- "validations/hostPath"

Any chance that can not be made mandatory? Would hate to have to change hostpath and have plex rescan the library.

Error log -

Error: Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 412, in run
await self.future
File "/usr/lib/python3/dist-packages/middlewared/job.py", line 448, in __run_body
rv = await self.method(*([self] + args))
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1261, in nf
return await func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1129, in nf
res = await f(*args, **kwargs)
File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/upgrade.py", line 116, in upgrade
await self.upgrade_chart_release(job, release, options)
File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/upgrade.py", line 266, in upgrade_chart_release
config, context = await self.middleware.call(
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1308, in call
return await self._call(
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1257, in _call
return await methodobj(*prepared_call.args)
File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/chart_release.py", line 332, in normalise_and_validate_values
dict_obj = await self.middleware.call(
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1308, in call
return await self._call(
File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1257, in _call
return await methodobj(*prepared_call.args)
File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/validation.py", line 69, in validate_values
verrors.check()
File "/usr/lib/python3/dist-packages/middlewared/service_exception.py", line 62, in check
raise self
middlewared.service_exception.ValidationErrors: [EINVAL] chart_release_create.appVolumeMounts.data.data.hostPathEnabled.hostPathEnabled.hostPath.hostPath: The path '/mnt' is already attached to service(s): SMB Share, VM.
[EINVAL] chart_release_create.appVolumeMounts.data.data.hostPathEnabled.hostPathEnabled.hostPath.hostPath: The path must reside within a pool mount point

Plex can't start sometimes "No such file or directory"

Hi,

I have an issue where always after a reboot plex can't start. These are the logs on the pod:

2022-07-07 18:25:26.896393+00:00[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
2022-07-07 18:25:26.994512+00:00[s6-init] ensuring user provided files have correct perms...exited 0.
2022-07-07 18:25:26.996333+00:00[fix-attrs.d] applying ownership & permissions fixes...
2022-07-07 18:25:26.996978+00:00[fix-attrs.d] done.
2022-07-07 18:25:26.997987+00:00[cont-init.d] executing container initialization scripts...
2022-07-07 18:25:27.004404+00:00[cont-init.d] 40-plex-first-run: executing... 
2022-07-07 18:25:27.098057+00:00Plex Media Server first run setup complete
2022-07-07 18:25:27.098135+00:00[cont-init.d] 40-plex-first-run: exited 0.
2022-07-07 18:25:27.098910+00:00[cont-init.d] 45-plex-hw-transcode-and-connected-tuner: executing... 
2022-07-07 18:25:27.107813+00:00[cont-init.d] 45-plex-hw-transcode-and-connected-tuner: exited 0.
2022-07-07 18:25:27.107879+00:00[cont-init.d] 50-plex-update: executing... 
2022-07-07 18:25:27.293182+00:00Could not get update version
2022-07-07 18:25:27.293222+00:00[cont-init.d] 50-plex-update: exited 0.
2022-07-07 18:25:27.293280+00:00[cont-init.d] done.
2022-07-07 18:25:27.293299+00:00[services.d] starting services
2022-07-07 18:25:27.293330+00:00Starting Plex Media Server.
2022-07-07 18:25:27.312346+00:00s6-applyuidgid: fatal: unable to exec /usr/lib/plexmediaserver/Plex Media Server: No such file or directory
2022-07-07 18:25:27.312418+00:00[services.d] done.
2022-07-07 18:25:27.312520+00:00Stopping Plex Media Server.
2022-07-07 18:25:27.328232+00:00kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
2022-07-07 18:25:32.345166+00:00Starting Plex Media Server.

And it repeats on and on, forever until the pod is stopped.
I didn't configure much from the default config when creating the pod.

Thanks.

Developer guide for this project would be very helpful

Hello :)

Could I ask how do you manage to iterate the development of this project? I would like to fork the project and have a little play with it to see if I could get Nextcloud to have HTTPS.

I am not familiarized with the development practices within the project.

Are there any resources out there that might help or point on how to test my changes in case I were to fork it?

I am reading https://www.truenas.com/docs/hub/scale/dev-notes/#deploying-kubernetes-workloads and they say:

Here is an example of deploying the Plex docker image:

midclt call -job chart.release.create '{"catalog": "OFFICIAL", "train": "test", "item": "ix-chart", "values": {"image": {"repository": "plexinc/pms-docker"}, "portForwardingList": [{"containerPort": 32400, "nodePort": 32400}], "volumes": [{"datasetName": "transcode", "mountPath": "/transcode"}, {"datasetName": "config", "mountPath": "/config"}, {"datasetName": "data", "mountPath": "/data"}], "workloadType": "Deployment", "gpuConfiguration": {"nvidia.com/gpu": 1}}, "version": "2010.0.1", "release_name": "plex"}'

Where does it get it from? Could I point to a local checkout of that chart?

Emby: 4.8.0.x are betas

Hi there, it looks like emby was bumped to 4.8.0.x, however these are betas and the last stable release is 4.7.5.0. In general, when the third digit is a 0 it means that it is a beta as far as emby is concerned.

Is it possible to downgrade to 4.7.5.0? I can make a PR if you'd like. Downgrading should not be a problem as databases are compatible across these 2 versions.

Launch Docker Image not exposing ports to node

When I ran docker image through Launch Docker Image feature, the ports are not exposed to node or some internal routing issue is in play as I can't even access the application locally through ClusterIP.

$ sudo k3s kubectl get services -n ix-alpha

NAME              TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE

alpha-ix-chart   NodePort   172.17.213.61   <none>        9093:9093/TCP   36s

$ curl http://172.17.213.61:9093

curl: (7) Failed to connect to 172.17.213.61 port 9093: No route to host

When I expose application to dedicated IP then the connection through local network works, but TrueNAS cannot access the IP as well:

$ curl http://10.0.0.100:9093

curl: (7) Failed to connect to 10.0.0.100 port 9093: No route to host

hide library charts

It would be nice to be able to use the CI on library charts, but ignore them from actually being shown in the "Apps" screen.

Current hack I did to hide a library chart from the CI (because the CI is incompatible with Library charts at the moment)::
Put it in the root folder with a dot . in front of a folder name in the root of the repository.

However, it would be nice if we would be able to use Library charts from Helm like normal and use the included IX-CI on those, without them being shown as Apps, because it would significantly simplify the workflow.
(for example: Now I had to hack a folder exclusion for the IX-CI, see above, and had to add another CI just for the library charts)

Suggested solution:
Add a special train/folder "libraries", exclude it from the default CI-process and process everything in there differently.

Plex has no TV tuner hardware access

One of Plex's major features is the ability to view and record TV broadcasts. Unfortunately, the current chart does not have access to the /dev/dvb/ directory. This prevents the use of USB and PCIe-based TV tuner devices.

It would be fantastic if TV tuner access could be implemented for the Plex chart.

I don't know how much this would involve, but I'm guessing this would at least require a Kubernetes device plugin. Maybe something like k8s-generic-device-plugin, k8s-host-device-plugin, or smarter-device-manager could be used?

Plex: not all Plex server ports are exposed

Hi,

I'm having trouble with the Plex chart due to it not exposing all the ports that Plex supports0.

As currently setup, it only exposes the primary port - 32400. However, Plex includes a DLNA server as well as some other auto-discovery ports:

UDP: 1900 (access to the Plex DLNA Server)
UDP: 5353 (older Bonjour/Avahi network discovery)
TCP: 8324 (controlling Plex for Roku via Plex Companion)
UDP: 32410, 32412, 32413, 32414 (current GDM network discovery)
TCP: 32469 (access to the Plex DLNA Server)

I'm not familiar with Helm charts and wasn't sure how to hack this into the chart.

Field was not expected because of conditional validation specified for 'hostPortsList'

truenas#  midclt call -job chart.release.create '{"catalog": "OFFICIAL", "train": "test", "item": "ix-chart", "values": {"image": {"repository": "adguard/adguardhome"}, "portForwar
dingList": [{"containerPort": "3000", "nodePort": "9330"}], "volumes": [ {"datasetName": "config", "mountPath": "/opt/adguardhome/work"}, {"datasetName": "config", "mountPath": "/o
pt/adguardhome/conf"}], "workloadType": "Deployment"}, "version": "2010.0.2", "release_name": "adguardhome"}'
Status: (none)
Total Progress: [________________________________________] 0.00%
[EINVAL] hostPortsList: Field was not expected because of conditional validation specified for 'hostPortsList'.

Plex update

Could we please pull the latest Plex version into the Apps

You are currently running version 1.23.1.4602 on the server "TruePlex". Version 1.23.2.4656 is now available.

is the latest tag 1.23.2.4656-85f0adf5b

thank you for your continued efforts @sonicaj

Plex upgrade fails when GPU is allocated

While upgrading Plex (1.24.5.5173_1.6.12 -> 1.25.2.5319_1.6.15) I get an error due to my App having a GPU reservation.

I think it might be because 1 GPU is already allocated and when I try to install a second instance of Plex it now shows 0 resources available. Which might be why the upgrade fails. Removing the Plex App and redeploying it fixes the issue as the GPU allocation was freed up.

Stack trace:

Error: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 409, in run
    await self.future
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 445, in __run_body
    rv = await self.method(*([self] + args))
  File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1269, in nf
    return await func(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1137, in nf
    res = await f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/upgrade.py", line 116, in upgrade
    await self.upgrade_chart_release(job, release, options)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/upgrade.py", line 266, in upgrade_chart_release
    config, context = await self.middleware.call(
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1324, in call
    return await self._call(
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1281, in _call
    return await methodobj(*prepared_call.args)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/chart_release.py", line 432, in normalise_and_validate_values
    dict_obj = await self.middleware.call(
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1324, in call
    return await self._call(
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1281, in _call
    return await methodobj(*prepared_call.args)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/validation.py", line 68, in validate_values
    verrors.check()
  File "/usr/lib/python3/dist-packages/middlewared/service_exception.py", line 62, in check
    raise self
middlewared.service_exception.ValidationErrors: [EINVAL] gpuConfiguration.gpu.intel.com/i915: Invalid choice: 1

Truenas Scale Charts should be able to use unmodified helm3 charts

Context and Problem Statement

It would help development if one can import helm3 charts for kubernetes directly into truenas scale's charts as is.

Describe the proposed option and how it helps to overcome the problem or limitation

We should be able to run helm3 charts in a degraded state.

Describe how your proposal will work, with code, pseudo-code, mock-ups, or diagrams

Auto import the Truenas Scale standard library?

Give defaults to the wizard?

Positive Consequences

  • Accessible to the universe of helm3 charts.

Negative Consequences

  • Engineering effort
  • Lack of product lock-in

Option graveyard:

If this enhancement will not be used often, can it be worked around with a few lines of script?

Not merely a few lines of logic.

Is there a reason why this should be core and done by us?

Truenas Scale is a k3s kubernetes system and yet it is not.

References

How to install library to nextcloud app?

Hi,

I recently installed the Nextcloud, and it works like a charm, thanks for your great work!

However, when I trying to install app "Face Recognition", it said "App "Face Recognition" cannot be installed because the following dependencies are not fulfilled: The library pdlib is not available. The library bz2 is not available."

Could you give a guide to install these library?

Thanks
Ian

Plex server update

You are currently running version 1.23.2.4656 on the server "TruePlex". Version 1.23.3.4707 is now available.
could we get a push to the latest docker image @sonicaj thanks for all your hard work

[Feature] Add Redis to Nextcloud

Redis is currently one of the most used additions when running nextcloud.
Adding it to a helmchart is rather easy and would improve user experience bigtime.

Plex version update

Could we please pull the latest Plex version into the Apps

You are currently running version 1.23.1.4602 on the server "TruePlex". Version 1.23.2.4656 is now available.

is the latest tag 1.23.2.4656-85f0adf5b

thank you for your continued efforts @sonicaj

MAchinaris Version

Any chance of having the chia version or atleast the Machinaris version tied to the version number in TNS? Is it deprecated? Does not appear to be updated in a while and without some sort of version reference it is hard to justify downloading what could be an old version. I guess I could check the code but is a lot of work for a simple task. It is an official app so maybe give a little love?

NextCloud install failing

Default options, coming from a fresh install yesterday:

chart.release.create

Error: Cannot connect to host 127.0.0.1:6443 ssl:default [Connect call failed ('127.0.0.1', 6443)]

[SCALE] Official Nextcloud 23 won't update

image

image

Hey, I have Nextcloud V23_1.3.11 installed. It shows Update available under Applications > Installed Applications. When I try to update the app, it is showing the upgrading... until 50% is reached. Then the windows closes and disappears, without showing any warning. What am I doing wrong? How can I fix that? Is there maybe any option to do this via CLI? It's the official Nextcloud App...

Don't know if this is the right place/ if my Jira issue is correct,
but here are Jira and my forum post:
https://jira.ixsystems.com/browse/NAS-114148
https://www.truenas.com/community/threads/scale-official-nextcloud-23-wont-update.97952/

Suggest adding Jellyfin Service

This server is easy and free,it can be accelerated using NVIDIA graphics card,an it is open source
Please adding
Thank ~~

[Feature] Allow custom DB server for nextcloud

Having an integrated DB server in the nextcloud App is nice, but we might want to allow users to able to set their own DB settings.
Either they want a single-central DB server, A specific DB-server or they want a high-available DB server like percona.

All those cases would be covered on the nextcloud side of things, by simply allowing to specify db settings manually.

Nextcloud: Can't set Environment Variables

I am looking to tune some PHP settings such as below, but there is no option to set environment variables when I edit the app.

memory_limit=${PHP_MEMORY_LIMIT}
upload_max_filesize=${PHP_UPLOAD_LIMIT}
post_max_size=${PHP_UPLOAD_LIMIT}

Nextcloud postgres fails to start

root@truenas:~# 2022 May 16 08:00:54 truenas Process 4037959 (postgres) of user 999 dumped core.
The following cli message is printed on container failing to start
Stack trace of thread 26:
#0 0x00007f73f2fb17bb n/a (/lib/x86_64-linux-gnu/libc-2.28.so + 0x377bb)
#1 0x0000560c72c06a1d n/a (/usr/lib/postgresql/13/bin/postgres + 0x15ea1d)
#2 0x0000560c72e1ca63 n/a (/usr/lib/postgresql/13/bin/postgres + 0x374a63)
#3 0x0000560c72c13326 n/a (/usr/lib/postgresql/13/bin/postgres + 0x16b326)
#4 0x0000560c72e186df n/a (/usr/lib/postgresql/13/bin/postgres + 0x3706df)
#5 0x0000560c72e1c00d n/a (/usr/lib/postgresql/13/bin/postgres + 0x37400d)
#6 0x0000560c72b67f3f n/a (/usr/lib/postgresql/13/bin/postgres + 0xbff3f)
#7 0x00007f73f2f9e09b n/a (/lib/x86_64-linux-gnu/libc-2.28.so + 0x2409b)

The pod logs for Postgres are below
PostgreSQL Database directory appears to contain a database; Skipping initialization

2022-05-16 13:04:19.800 UTC [1] LOG: starting PostgreSQL 13.1 (Debian 13.1-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2022-05-16 13:04:19.800 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2022-05-16 13:04:19.800 UTC [1] LOG: listening on IPv6 address "::", port 5432
2022-05-16 13:04:20.005 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2022-05-16 13:04:20.011 UTC [26] LOG: database system was shut down at 2022-05-09 18:31:12 UTC
2022-05-16 13:04:20.011 UTC [26] LOG: invalid record length at 0/860A2558: wanted 24, got 0
2022-05-16 13:04:20.012 UTC [26] LOG: invalid primary checkpoint record
2022-05-16 13:04:20.012 UTC [26] PANIC: could not locate a valid checkpoint record
2022-05-16 13:04:21.233 UTC [27] FATAL: the database system is starting up
2022-05-16 13:04:22.014 UTC [1] LOG: startup process (PID 26) was terminated by signal 6: Aborted
2022-05-16 13:04:22.014 UTC [1] LOG: aborting startup due to startup process failure
2022-05-16 13:04:22.033 UTC [1] LOG: database system is shut down

This just loops indefinitely.
nextcloud
23.0.3_1.5.0
Up to date

I am trying to figure out how I may make use of the ix-postgres_backups at /mnt/Vol2/ix-applications/releases/nextcloud/volumes/ix_volumes/ix-postgres_backups
If thats even the right solution...

Update to Machinaris

Why hasn't there been any update to the Machinaris chart? 0.8.2 has been out a while

Provide a template chart

Like a chart that serves a plain html that returns the string truenas allowing the option to use the truenas cert.

Example is missing a label

variable: Should have a label.

groups:
  - name: "Container Images"
    description: "Image to be used for container"
questions:
  - variable: image
    description: "Docker Image Details"
    group: "Container Images"
    schema:
      type: dict
      required: true
      attrs:
        - variable: repository
          description: "Docker image repository"
          label: "Image repository"
          schema:
            type: string
            required: true
        - variable: tag
          description: "Tag to use for specified image"
          label: "Image Tag"
          schema:
            type: string
            default: "latest"
        - variable: pullPolicy
          description: "Docker Image Pull Policy"
          label: "Image Pull Policy"
          schema:
            type: string
            default: "IfNotPresent"
            enum:
              - value: "IfNotPresent"
                description: "Only pull image if not present on host"
              - value: "Always"
                description: "Always pull image even if present on host"
              - value: "Never"
                description: "Never pull image even if it's not present on host"

Nextcloud server app not configurable due to volume persistency

I recently tired to install the Nextcloud app and was trying to set up https as per the documentation (Nextcloud documentation deems it mandatory). However, the files that need to be changed to do this are in docker volumes that are non-persistent. From what can tell there is no way to keep these files from being reset after a container restart. Please let me know if I am wrong or if there is a solution to this that I am unaware of.

my system is as follows:

HP ProLiant 360e 16 core 32 thread server
4 drives (2 1tb mirrored, 2 2tb mirrored)
TrueNAS-SCALE-21.06-BETA.1

Unhealthy charts break all TrueNAS chart updates

In the last week or so I have noticed that a growing (though slowly) number of charts are unhealthy. I have a feeling that this is a local issue considering I have found no mention of anything similar in sporadic deep searching dives during this period.
I am getting this warning in my notifications:

WARNING
minio (charts train), netdata (charts train), collabora (charts train), chia (charts train), nextcloud (charts train) Applications in OFFICIAL Catalog are not healthy.
2022-04-20 08:56:17 (America/Denver)

When I check the Apps > Available Applications tab I see only the unhealthy apps mentioned:
Screen Shot 2022-04-20 at 9 40 03 AM

Luckily I am able to view and update the existing instances of these apps that I setup prior to this issue arising.

I am happy to debug more but I have hit a limit on my knowledge and I am not sure what I can do to debug this issue. Is there a way to clear the cache of TrueNAS charts locally?

172 ip address

Trying to install a series of apps and while nextcloud works I cant get nzbget, sonarr, radarr, or lidarr to install. They all fail on a 172 ip address connection test that fails. Is it that nextcloud can rewite its url and the others cant? If my suspicion is right why the 172 hard coded? Never have seen that ip range in a residential setting. Usually 10.x.x.x or 192.x.x.x. Cant install any of the apps. Looking at docker on Synology and there is one check box for "use host network". Allegedly this gets the app the same IP as the host and the port maps. What would the equivalent setting in the settings panel and why is that area so complicated? Whats ingress? Cant adapt coming from synology. Just want an easy to use nas. This interface for installing apps in Truenas-Scale is far from. Ive seen documentation on linking these apps with URL as its not possible with IP? Sigh. How is this kubernetes stuff a step forward? Sorry, dont mean to be sour but after 5 hours of trying to get one of the above apps to install I think I am about done with truenas. Everything to this point was not bad. Charts has no documentation, just a series of circular click loops on three or four pages that all lead here.

Machinaris does have permission issues.

Hello, my machinaris does not want to plot.
I am running the latest Truenas scale.

machinaris
v0.6.9_1.1.3

Ecc ram available: 58 Gib CPU: 2 X intel E5-2650 0 @ 2.00GHz

One 2TB sata spinning disk with the following paths mentioned below ( host path for config and plots)
The pod/docker is set up as follows per this guide: https://github.com/guydavis/machinaris/wiki/TrueNAS

Host Path for Machinaris Configuration Volume * /mnt/Shia/config

Host Path for Machinaris Plots Volume * /mnt/Shia/plots

http://192.168.132.10:9003/index shows plotting idle and farming active .

http://192.168.132.10:9003/plotting/jobs shows plotting running but no jobs. The workers tab on the same page shows: No plotting disk stats recorded recently for 0.0.0.0. Please check that valid plotting paths (aka "tmp") are set in the worker's Plotman config on the Settings | Plotting page.

http://192.168.132.10:9003/workers shows: truenas chia fullnode

plotter config https://pastebin.com/CxJzBstL

Also, my wallet appears to not be synced even if the nodes are synced.

plotman log says: cat 2022-02-11T04_05_21.184112+00_00.plot.log
Failed to write to finaldir directory: '/plots1/'

plotman.log: Starting plot job: chia_plot -n 1 -k 32 -r 4 -u 128 -x 8444 -t /plotting/ -d /plots1/ -v 128 -K 1 -f b9aec8206ad1a4493ddae6abbcbdd10e37b42566d5dc2e2295fbbe3d69a712040ba87bf6d70a09b9722b8f7bbda422a5 -p a62f4c1cae774f9f6122c0d7747969020f6a3b7d6350429595dc56f00ae77f72c4e28fcb643557c05ae04217f3f95ebf ; logging to /root/.chia/plotman/logs/2022-02-11T09_56_03.781093+00_00.plot.log

Blockchain Status: Full Node Synced

It seems that the directories are not created or mapped correctly, or there most likely is permission related.

I propose that the Machinaris app get the option to set the correct acl/permissions automatically, like this Sonarr example has.

permissio

HTTPS: Securing Nextcloud with SSL?

Hello, thanks for taking the time to compile the various apps.

I wanted to know how can you manage the Nextcloud application to be run under HTTPS instead of HTTP.

I can think of the solution of using Cloudflare's Free SSL, but I was wondering it it would be possible to configure TrueNas SCALE or contributing to the chart to add some sort of reverse proxy in front that simply enables SSL.

I can think of Caddy's Automatic HTTPS feature, maybe bringing it into the chart would be an option? Or maybe there's no need and we can benefit somehow from the TrueNAS SCALE certificate management system...

Can you configure reverse proxying from TrueNAS SCALE outside Kubernetes, or should I consider working within Kubernetes when it comes to reverse proxying the requests?

What are your views on that?

[Feature] Add an extra plotting host path for Chia

Plotting on ZFS is much faster than on other filesystems on regular spinning hard drives, but I would like to be able to use a separate SSD only pool for plotting. Could you please add an extra host path for that use case?

Thank you for creating this Chia app, it works a lot better than their Docker container and was a nice surprise to see it in the official applications after fighting with their container for a few days.

PLEX deployment stuck in loop when set to "Required Encryption"

The deployment only checks on http https://github.com/truenas/charts/blob/master/charts/plex/1.1.0/templates/deployment.yaml#L51

In plex you can set network connects to force HTTPS (Settings > Network > Secure Connections > Required)

Which can result in the probe to continuously fail even on clean starts, will see messages like:

Readiness probe failed: Get "http://<server>:32400/identity": dial tcp <server>:32400: connect: connection refused

It needs to have at least a fallback to https if http fails.

Add more verbosity to the CI when running Helm Test

Currently when the CI helm test or helm install fails, it's not always clear why...
This ends up being a guessing game, when local runs of helm test work fine.

It would be nice if we could get a little more verbosity from the CI....

That being said: The default for helm test or helm install isn't verbose too and I'm not sure if you could make it more verbose.

To explain the problematic scenario's:
I've had multiple cases where the pods/svc's/etc would deploy fine, but running helm with wait resulted in timeouts (both locally and in the CI) without a clear reason. Only by tracing back my steps I was able to find the cause in those cases.

But the goal of a CI is to also nudge you in the right direction, while it currently only says "timeout"

How to update parameters UI while developing a chart

Hello,

I am experimenting by bringing the test/minio/1.2.1 into charts/minio/1.2.1 and changing or adding the questions.yaml so that I can see how to include extra fields on the UI that shows when you want to install an app from the catalog.

I have no success, I am working on my own fork, and I install it by:

midclt call catalog.create '{"label": "docwhite", "repository": "https://github.com/docwhite/charts", "branch": "temp"}'

And even after changing some parameters they won't reflect on the UI.

I tried issuing midclt call catalog.validate and midclt call catalog sync and still doesn't show.

Is there any refresh command that would regenerate those parameter interfaces?

Forwarding multiple ports to the container failed

midclt call -job chart.release.create '{"catalog": "OFFICIAL", "train": "test", "item": "ix-chart", "values": {"image": {"repository": "linuxserver/qbittorrent"}, "portFor
wardingList": [{"containerPort": 16831, "nodePort": 16831, "protocol": "UDP"},{"containerPort": 9080, "nodePort": 9080}],"containerEnvironmentVariables": [{"name": "PUID", "value":
 "1000"}, {"name": "PGID", "value": "1000"}, {"name": "TZ", "value": "Asia/Shanghai"}, {"name": "UMASK_SET", "value": "022"}, {"name": "WEBUI_PORT", "value": "9080"}], "volumes": [
 {"datasetName": "config", "mountPath": "/config"}],"hostPathVolumes": [{"hostPath": "/mnt/JBOD/Media", "mountPath": "/Media","readOnly": false }, {"hostPath": "/mnt/JBOD/Download"
, "mountPath": "/downloads","readOnly": false }], "workloadType": "Deployment"}, "version": "2010.0.1", "release_name": "qbittorrent"}'
Status: Installing Catalog Item
Total Progress: [##############################__________] 75.00%
[EFAULT] Failed to install catalog item: b'Error: Service "qbittorrent-ix-chart" is invalid: [spec.ports[0].name: Required value, spec.ports[1].name: Required value]\n'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 372, in run
    await self.future
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 408, in __run_body
    rv = await self.method(*([self] + args))
  File "/usr/lib/python3/dist-packages/middlewared/schema.py", line 1022, in nf
    return await f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/middlewared/plugins/chart_releases_linux/chart_release.py", line 223, in do_create
    raise CallError(f'Failed to install catalog item: {cp.stderr}')
middlewared.service_exception.CallError: [EFAULT] Failed to install catalog item: b'Error: Service "qbittorrent-ix-chart" is invalid: [spec.ports[0].name: Required value, spec.ports[1].name: Required value]\n'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.