diff --git a/incubator/oscam/1.0.0/CHANGELOG.md b/incubator/oscam/1.0.0/CHANGELOG.md
new file mode 100644
index 0000000000..649f590c5f
--- /dev/null
+++ b/incubator/oscam/1.0.0/CHANGELOG.md
@@ -0,0 +1,4 @@
+
+
+## oscam-1.0.0 (2021-09-07)
+
diff --git a/incubator/oscam/1.0.0/CONFIG.md b/incubator/oscam/1.0.0/CONFIG.md
new file mode 100644
index 0000000000..b95527b270
--- /dev/null
+++ b/incubator/oscam/1.0.0/CONFIG.md
@@ -0,0 +1,46 @@
+# oscam
+
+  
+
+Open Source Conditional Access Module software
+
+**Homepage:**
+
+## Maintainers
+
+| Name | Email | Url |
+| ---- | ------ | --- |
+| TrueCharts | info@truecharts.org | truecharts.org |
+
+## Source Code
+
+*
+
+## Requirements
+
+Kubernetes: `>=1.16.0-0`
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://truecharts.org | common | 6.13.7 |
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| env.PGID | string | `"20"` | |
+| env.PUID | string | `"568"` | |
+| env.TZ | string | `"UTC"` | |
+| image.pullPolicy | string | `"IfNotPresent"` | |
+| image.repository | string | `"ghcr.io/linuxserver/oscam"` | |
+| image.tag | string | `"version-11693"` | |
+| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
+| persistence.config.enabled | bool | `true` | |
+| persistence.config.mountPath | string | `"/config"` | |
+| persistence.config.size | string | `"100Gi"` | |
+| persistence.config.type | string | `"pvc"` | |
+| service.main.enabled | bool | `true` | |
+| service.main.ports.main.port | int | `8888` | |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
diff --git a/incubator/oscam/1.0.0/Chart.lock b/incubator/oscam/1.0.0/Chart.lock
new file mode 100644
index 0000000000..7c01f8e373
--- /dev/null
+++ b/incubator/oscam/1.0.0/Chart.lock
@@ -0,0 +1,6 @@
+dependencies:
+- name: common
+ repository: https://truecharts.org
+ version: 6.13.7
+digest: sha256:85cf82d19e7aaf78d62b80a6b9be4fe7b3d8eb5e50c1808c44b385ab2889f43d
+generated: "2021-09-07T22:32:30.279268831Z"
diff --git a/incubator/oscam/1.0.0/Chart.yaml b/incubator/oscam/1.0.0/Chart.yaml
new file mode 100644
index 0000000000..5df6423308
--- /dev/null
+++ b/incubator/oscam/1.0.0/Chart.yaml
@@ -0,0 +1,22 @@
+apiVersion: v2
+appVersion: auto
+dependencies:
+- name: common
+ repository: https://truecharts.org
+ version: 6.13.7
+deprecated: false
+description: "Open Source Conditional Access Module software"
+home: https://github.com/truecharts/apps/tree/master/charts/stable/oscam
+icon: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/oscam-logo.png
+keywords:
+- oscam
+kubeVersion: '>=1.16.0-0'
+maintainers:
+- email: info@truecharts.org
+ name: TrueCharts
+ url: truecharts.org
+name: oscam
+sources:
+- https://trac.streamboard.tv/oscam/browser/trunk
+type: application
+version: 1.0.0
diff --git a/incubator/oscam/1.0.0/README.md b/incubator/oscam/1.0.0/README.md
new file mode 100644
index 0000000000..b95527b270
--- /dev/null
+++ b/incubator/oscam/1.0.0/README.md
@@ -0,0 +1,46 @@
+# oscam
+
+  
+
+Open Source Conditional Access Module software
+
+**Homepage:**
+
+## Maintainers
+
+| Name | Email | Url |
+| ---- | ------ | --- |
+| TrueCharts | info@truecharts.org | truecharts.org |
+
+## Source Code
+
+*
+
+## Requirements
+
+Kubernetes: `>=1.16.0-0`
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://truecharts.org | common | 6.13.7 |
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| env.PGID | string | `"20"` | |
+| env.PUID | string | `"568"` | |
+| env.TZ | string | `"UTC"` | |
+| image.pullPolicy | string | `"IfNotPresent"` | |
+| image.repository | string | `"ghcr.io/linuxserver/oscam"` | |
+| image.tag | string | `"version-11693"` | |
+| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
+| persistence.config.enabled | bool | `true` | |
+| persistence.config.mountPath | string | `"/config"` | |
+| persistence.config.size | string | `"100Gi"` | |
+| persistence.config.type | string | `"pvc"` | |
+| service.main.enabled | bool | `true` | |
+| service.main.ports.main.port | int | `8888` | |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
diff --git a/incubator/oscam/1.0.0/app-readme.md b/incubator/oscam/1.0.0/app-readme.md
new file mode 100644
index 0000000000..b95527b270
--- /dev/null
+++ b/incubator/oscam/1.0.0/app-readme.md
@@ -0,0 +1,46 @@
+# oscam
+
+  
+
+Open Source Conditional Access Module software
+
+**Homepage:**
+
+## Maintainers
+
+| Name | Email | Url |
+| ---- | ------ | --- |
+| TrueCharts | info@truecharts.org | truecharts.org |
+
+## Source Code
+
+*
+
+## Requirements
+
+Kubernetes: `>=1.16.0-0`
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://truecharts.org | common | 6.13.7 |
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| env.PGID | string | `"20"` | |
+| env.PUID | string | `"568"` | |
+| env.TZ | string | `"UTC"` | |
+| image.pullPolicy | string | `"IfNotPresent"` | |
+| image.repository | string | `"ghcr.io/linuxserver/oscam"` | |
+| image.tag | string | `"version-11693"` | |
+| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
+| persistence.config.enabled | bool | `true` | |
+| persistence.config.mountPath | string | `"/config"` | |
+| persistence.config.size | string | `"100Gi"` | |
+| persistence.config.type | string | `"pvc"` | |
+| service.main.enabled | bool | `true` | |
+| service.main.ports.main.port | int | `8888` | |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
diff --git a/incubator/oscam/1.0.0/charts/common-6.13.7.tgz b/incubator/oscam/1.0.0/charts/common-6.13.7.tgz
new file mode 100644
index 0000000000..6b300369a4
Binary files /dev/null and b/incubator/oscam/1.0.0/charts/common-6.13.7.tgz differ
diff --git a/incubator/oscam/1.0.0/helm-values.md b/incubator/oscam/1.0.0/helm-values.md
new file mode 100644
index 0000000000..b95527b270
--- /dev/null
+++ b/incubator/oscam/1.0.0/helm-values.md
@@ -0,0 +1,46 @@
+# oscam
+
+  
+
+Open Source Conditional Access Module software
+
+**Homepage:**
+
+## Maintainers
+
+| Name | Email | Url |
+| ---- | ------ | --- |
+| TrueCharts | info@truecharts.org | truecharts.org |
+
+## Source Code
+
+*
+
+## Requirements
+
+Kubernetes: `>=1.16.0-0`
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://truecharts.org | common | 6.13.7 |
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| env.PGID | string | `"20"` | |
+| env.PUID | string | `"568"` | |
+| env.TZ | string | `"UTC"` | |
+| image.pullPolicy | string | `"IfNotPresent"` | |
+| image.repository | string | `"ghcr.io/linuxserver/oscam"` | |
+| image.tag | string | `"version-11693"` | |
+| persistence.config.accessMode | string | `"ReadWriteOnce"` | |
+| persistence.config.enabled | bool | `true` | |
+| persistence.config.mountPath | string | `"/config"` | |
+| persistence.config.size | string | `"100Gi"` | |
+| persistence.config.type | string | `"pvc"` | |
+| service.main.enabled | bool | `true` | |
+| service.main.ports.main.port | int | `8888` | |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
diff --git a/incubator/oscam/1.0.0/ix_values.yaml b/incubator/oscam/1.0.0/ix_values.yaml
new file mode 100644
index 0000000000..a14bc0d6e3
--- /dev/null
+++ b/incubator/oscam/1.0.0/ix_values.yaml
@@ -0,0 +1,15 @@
+##
+# This file contains Values.yaml content that gets added to the output of questions.yaml
+# It's ONLY meant for content that the user is NOT expected to change.
+# Example: Everything under "image" is not included in questions.yaml but is included here.
+##
+
+image:
+ repository: ghcr.io/linuxserver/oscam
+ pullPolicy: IfNotPresent
+ tag: version-11693
+
+##
+# Most other defaults are set in questions.yaml
+# For other options please refer to the wiki, default_values.yaml or the common library chart
+##
diff --git a/incubator/oscam/1.0.0/questions.yaml b/incubator/oscam/1.0.0/questions.yaml
new file mode 100644
index 0000000000..5e2a09780d
--- /dev/null
+++ b/incubator/oscam/1.0.0/questions.yaml
@@ -0,0 +1,1101 @@
+groups:
+ - name: "Container Image"
+ description: "Image to be used for container"
+ - name: "Controller"
+ description: "Configure workload deployment"
+ - name: "Container Configuration"
+ description: "additional container configuration"
+ - name: "App Configuration"
+ description: "App specific config options"
+ - name: "Networking and Services"
+ description: "Configure Network and Services for container"
+ - name: "Storage and Persistence"
+ description: "Persist and share data that is separate from the container"
+ - name: "Ingress"
+ description: "Ingress Configuration"
+ - name: "Security and Permissions"
+ description: "Configure security context and permissions"
+ - name: "Resources and Devices"
+ description: "Specify resources/devices to be allocated to workload"
+ - name: "Advanced"
+ description: "Advanced Configuration"
+portals:
+ web_portal:
+ protocols:
+ - "$kubernetes-resource_configmap_portal_protocol"
+ host:
+ - "$kubernetes-resource_configmap_portal_host"
+ ports:
+ - "$kubernetes-resource_configmap_portal_port"
+questions:
+ - variable: portal
+ group: "Container Image"
+ label: "Configure Portal Button"
+ schema:
+ type: dict
+ hidden: true
+ attrs:
+ - variable: enabled
+ label: "Enable"
+ description: "enable the portal button"
+ schema:
+ hidden: true
+ editable: false
+ type: boolean
+ default: true
+ - variable: controller
+ group: "Controller"
+ label: ""
+ schema:
+ type: dict
+ attrs:
+ - variable: type
+ description: "Please specify type of workload to deploy"
+ label: "(Advanced) Controller Type"
+ schema:
+ type: string
+ default: "deployment"
+ required: true
+ enum:
+ - value: "deployment"
+ description: "Deployment"
+ - value: "statefulset"
+ description: "Statefulset"
+ - value: "daemonset"
+ description: "Daemonset"
+ - variable: replicas
+ description: "Number of desired pod replicas"
+ label: "Desired Replicas"
+ schema:
+ type: int
+ default: 1
+ required: true
+ - variable: strategy
+ description: "Please specify type of workload to deploy"
+ label: "(Advanced) Update Strategy"
+ schema:
+ type: string
+ default: "Recreate"
+ required: true
+ enum:
+ - value: "Recreate"
+ description: "Recreate: Kill existing pods before creating new ones"
+ - value: "RollingUpdate"
+ description: "RollingUpdate: Create new pods and then kill old ones"
+ - value: "OnDelete"
+ description: "(Legacy) OnDelete: ignore .spec.template changes"
+ - variable: labelsList
+ label: "Controller Labels"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: labelItem
+ label: "Label"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+ - variable: annotationsList
+ label: " Controller Annotations"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: annotationItem
+ label: "Label"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+
+ - variable: podLabelsList
+ group: "Container Configuration"
+ label: "Pod Labels"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: podLabelItem
+ label: "Label"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+
+ - variable: podAnnotationsList
+ group: "Container Configuration"
+ label: "Pod Annotations"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: podAnnotationItem
+ label: "Label"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+
+ - variable: termination
+ group: "Container Configuration"
+ label: "Termination settings"
+ schema:
+ type: dict
+ attrs:
+ - variable: gracePeriodSeconds
+ label: "Grace Period Seconds"
+ schema:
+ type: int
+ default: 10
+ - variable: env
+ group: "Container Configuration"
+ label: "Image Environment"
+ schema:
+ type: dict
+ attrs:
+ - variable: TZ
+ label: "Timezone"
+ schema:
+ type: string
+ default: "Etc/UTC"
+ $ref:
+ - "definitions/timezone"
+ - variable: PUID
+ label: "PUID"
+ description: "Sets the userID inside the container"
+ schema:
+ type: string
+ default: "568"
+ - variable: PGID
+ label: "PGID"
+ description: "Sets the GroupID inside the container"
+ schema:
+ type: string
+ default: "20"
+ - variable: UMASK
+ label: "UMASK"
+ description: "Sets the UMASK env var for LinuxServer.io (compatible) containers"
+ schema:
+ type: string
+ default: "002"
+ # Configure Enviroment Variables
+ - variable: envList
+ label: "Image environment"
+ group: "Container Configuration"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: envItem
+ label: "Environment Variable"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+
+ - variable: hostNetwork
+ group: "Networking and Services"
+ label: "Enable Host Networking"
+ schema:
+ type: boolean
+ default: false
+
+ - variable: service
+ group: "Networking and Services"
+ label: "Configure Service(s)"
+ schema:
+ type: dict
+ attrs:
+ - variable: main
+ label: "Main Service"
+ description: "The Primary service on which the healthcheck runs, often the webUI"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the service"
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: type
+ label: "Service Type"
+ description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: "NodePort"
+ enum:
+ - value: "NodePort"
+ description: "NodePort"
+ - value: "ClusterIP"
+ description: "ClusterIP"
+ - value: "LoadBalancer"
+ description: "LoadBalancer"
+ - variable: loadBalancerIP
+ label: "LoadBalancer IP"
+ description: "LoadBalancerIP"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: externalIPs
+ label: "External IP's"
+ description: "External IP's"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: list
+ default: []
+ items:
+ - variable: externalIP
+ label: "External IP"
+ schema:
+ type: string
+ - variable: ports
+ label: "Service's Port(s) Configuration"
+ schema:
+ type: dict
+ attrs:
+ - variable: main
+ label: "Main Service Port Configuration"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the port"
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: protocol
+ label: "Port Type"
+ schema:
+ type: string
+ default: "HTTP"
+ enum:
+ - value: HTTP
+ description: "HTTP"
+ - value: "HTTPS"
+ description: "HTTPS"
+ - value: TCP
+ description: "TCP"
+ - value: "UDP"
+ description: "UDP"
+ - variable: targetPort
+ label: "Target Port"
+ description: "This port exposes the container port on the service"
+ schema:
+ type: int
+ default: 8888
+ required: true
+ - variable: port
+ label: "Container Port"
+ schema:
+ type: int
+ default: 8888
+ required: true
+ - variable: nodePort
+ label: "Node Port (Optional)"
+ description: "This port gets exposed to the node. Only considered when service type is NodePort"
+ schema:
+ type: int
+ default: 36103
+ min: 9000
+ max: 65535
+
+ - variable: serviceList
+ label: "Additional Services"
+ group: "Networking and Services"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: serviceListEntry
+ label: "Custom Service"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the service"
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ default: ""
+ - variable: type
+ label: "Service Type"
+ description: "ClusterIP's are only internally available, nodePorts expose the container to the host node System, Loadbalancer exposes the service using the system loadbalancer"
+ schema:
+ type: string
+ default: "NodePort"
+ enum:
+ - value: "NodePort"
+ description: "NodePort"
+ - value: "ClusterIP"
+ description: "ClusterIP"
+ - value: "LoadBalancer"
+ description: "LoadBalancer"
+ - variable: loadBalancerIP
+ label: "LoadBalancer IP"
+ description: "LoadBalancerIP"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: string
+ default: ""
+ - variable: externalIPs
+ label: "External IP's"
+ description: "External IP's"
+ schema:
+ show_if: [["type", "=", "LoadBalancer"]]
+ type: list
+ default: []
+ items:
+ - variable: externalIP
+ label: "External IP"
+ schema:
+ type: string
+ - variable: portsList
+ label: "Additional Service Ports"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: portsListEntry
+ label: "Custom ports"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the port"
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: "Port Name"
+ schema:
+ type: string
+ default: ""
+ - variable: protocol
+ label: "Port Type"
+ schema:
+ type: string
+ default: "TCP"
+ enum:
+ - value: HTTP
+ description: "HTTP"
+ - value: "HTTPS"
+ description: "HTTPS"
+ - value: TCP
+ description: "TCP"
+ - value: "UDP"
+ description: "UDP"
+ - variable: targetPort
+ label: "Target Port"
+ description: "This port exposes the container port on the service"
+ schema:
+ type: int
+ required: true
+ - variable: port
+ label: "Container Port"
+ schema:
+ type: int
+ required: true
+ - variable: nodePort
+ label: "Node Port (Optional)"
+ description: "This port gets exposed to the node. Only considered when service type is NodePort"
+ schema:
+ type: int
+ min: 9000
+ max: 65535
+
+ - variable: persistence
+ label: "Integrated Persistent Storage"
+ group: "Storage and Persistence"
+ schema:
+ type: dict
+ attrs:
+ - variable: config
+ label: "App Config Storage"
+ description: "Stores the Application Configuration."
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the storage"
+ schema:
+ type: boolean
+ default: true
+ - variable: type
+ label: "(Advanced) Type of Storage"
+ description: "Sets the persistence type"
+ schema:
+ type: string
+ default: "pvc"
+ enum:
+ - value: "pvc"
+ description: "pvc"
+ - value: "emptyDir"
+ description: "emptyDir"
+ - value: "hostPath"
+ description: "hostPath"
+ - variable: storageClass
+ label: "(Advanced) storageClass"
+ description: " Warning: Anything other than SCALE-ZFS will break rollback!"
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: "SCALE-ZFS"
+ - variable: setPermissions
+ label: "Automatic Permissions"
+ description: "Automatically set permissions on install"
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: boolean
+ default: true
+ - variable: readOnly
+ label: "readOnly"
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: "hostPath"
+ description: "Path inside the container the storage is mounted"
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: hostpath
+ - variable: hostPathType
+ label: "hostPath Type"
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: "Default"
+ - value: "DirectoryOrCreate"
+ description: "DirectoryOrCreate"
+ - value: "Directory"
+ description: "Directory"
+ - value: "FileOrCreate"
+ description: "FileOrCreate"
+ - value: "File"
+ description: "File"
+ - value: "Socket"
+ description: "Socket"
+ - value: "CharDevice"
+ description: "CharDevice"
+ - value: "BlockDevice"
+ description: "BlockDevice"
+ - variable: mountPath
+ label: "mountPath"
+ description: "Path inside the container the storage is mounted"
+ schema:
+ type: string
+ default: "/config"
+ hidden: true
+ - variable: medium
+ label: "EmptyDir Medium"
+ schema:
+ show_if: [["type", "=", "emptyDir"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: "Default"
+ - value: "Memory"
+ description: "Memory"
+ - variable: accessMode
+ label: "Access Mode (Advanced)"
+ description: "Allow or disallow multiple PVC's writhing to the same PV"
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: "ReadWriteOnce"
+ enum:
+ - value: "ReadWriteOnce"
+ description: "ReadWriteOnce"
+ - value: "ReadOnlyMany"
+ description: "ReadOnlyMany"
+ - value: "ReadWriteMany"
+ description: "ReadWriteMany"
+ - variable: size
+ label: "Size quotum of storage"
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: "100Gi"
+ - variable: persistenceList
+ label: "Additional app storage"
+ group: "Storage and Persistence"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: persistenceListEntry
+ label: "Custom Storage"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the storage"
+ schema:
+ type: boolean
+ default: true
+ - variable: type
+ label: "(Advanced) Type of Storage"
+ description: "Sets the persistence type"
+ schema:
+ type: string
+ default: "hostPath"
+ enum:
+ - value: "pvc"
+ description: "pvc"
+ - value: "emptyDir"
+ description: "emptyDir"
+ - value: "hostPath"
+ description: "hostPath"
+ - variable: storageClass
+ label: "(Advanced) storageClass"
+ description: " Warning: Anything other than SCALE-ZFS will break rollback!"
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: "SCALE-ZFS"
+ - variable: setPermissions
+ label: "Automatic Permissions"
+ description: "Automatically set permissions on install"
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: boolean
+ default: true
+ - variable: readOnly
+ label: "readOnly"
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: "hostPath"
+ description: "Path inside the container the storage is mounted"
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: hostpath
+ - variable: hostPathType
+ label: "hostPath Type"
+ schema:
+ show_if: [["type", "=", "hostPath"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: "Default"
+ - value: "DirectoryOrCreate"
+ description: "DirectoryOrCreate"
+ - value: "Directory"
+ description: "Directory"
+ - value: "FileOrCreate"
+ description: "FileOrCreate"
+ - value: "File"
+ description: "File"
+ - value: "Socket"
+ description: "Socket"
+ - value: "CharDevice"
+ description: "CharDevice"
+ - value: "BlockDevice"
+ description: "BlockDevice"
+ - variable: mountPath
+ label: "mountPath"
+ description: "Path inside the container the storage is mounted"
+ schema:
+ type: string
+ required: true
+ default: ""
+ - variable: medium
+ label: "EmptyDir Medium"
+ schema:
+ show_if: [["type", "=", "emptyDir"]]
+ type: string
+ default: ""
+ enum:
+ - value: ""
+ description: "Default"
+ - value: "Memory"
+ description: "Memory"
+ - variable: accessMode
+ label: "Access Mode (Advanced)"
+ description: "Allow or disallow multiple PVC's writhing to the same PVC"
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: "ReadWriteOnce"
+ enum:
+ - value: "ReadWriteOnce"
+ description: "ReadWriteOnce"
+ - value: "ReadOnlyMany"
+ description: "ReadOnlyMany"
+ - value: "ReadWriteMany"
+ description: "ReadWriteMany"
+ - variable: size
+ label: "Size quotum of storage"
+ schema:
+ show_if: [["type", "=", "pvc"]]
+ type: string
+ default: "100Gi"
+
+ - variable: ingress
+ label: ""
+ group: "Ingress"
+ schema:
+ type: dict
+ attrs:
+ - variable: main
+ label: "Main Ingress"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable Ingress"
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: hosts
+ label: "Hosts"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: hostEntry
+ label: "Host"
+ schema:
+ type: dict
+ attrs:
+ - variable: host
+ label: "HostName"
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: paths
+ label: "Paths"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: pathEntry
+ label: "Host"
+ schema:
+ type: dict
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ required: true
+ default: "/"
+ - variable: pathType
+ label: "pathType"
+ schema:
+ type: string
+ required: true
+ default: "Prefix"
+ - variable: tls
+ label: "TLS-Settings"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: tlsEntry
+ label: "Host"
+ schema:
+ type: dict
+ attrs:
+ - variable: hosts
+ label: "Certificate Hosts"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: host
+ label: "Host"
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: scaleCert
+ label: "Select TrueNAS SCALE Certificate"
+ schema:
+ type: int
+ $ref:
+ - "definitions/certificate"
+ - variable: entrypoint
+ label: "Traefik Entrypoint"
+ description: "Entrypoint used by Traefik when using Traefik as Ingress Provider"
+ schema:
+ type: string
+ default: "websecure"
+ required: true
+ - variable: middlewares
+ label: "Traefik Middlewares"
+ description: "Add previously created Traefik Middlewares to this Ingress"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ default: ""
+ required: true
+
+ - variable: ingressList
+ label: "Additional Ingress"
+ group: "Ingress"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: ingressListEntry
+ label: "Custom Ingress"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable Ingress"
+ schema:
+ type: boolean
+ default: true
+ hidden: true
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ default: ""
+ - variable: ingressClassName
+ label: "IngressClass Name"
+ schema:
+ type: string
+ default: ""
+ - variable: labelsList
+ label: "Labels"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: labelItem
+ label: "Label"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+ - variable: annotationsList
+ label: "Annotations"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: annotationItem
+ label: "Label"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ - variable: value
+ label: "Value"
+ schema:
+ type: string
+ - variable: hosts
+ label: "Hosts"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: hostEntry
+ label: "Host"
+ schema:
+ type: dict
+ attrs:
+ - variable: host
+ label: "HostName"
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: paths
+ label: "Paths"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: pathEntry
+ label: "Host"
+ schema:
+ type: dict
+ attrs:
+ - variable: path
+ label: "path"
+ schema:
+ type: string
+ required: true
+ default: "/"
+ - variable: pathType
+ label: "pathType"
+ schema:
+ type: string
+ required: true
+ default: "Prefix"
+ - variable: service
+ label: "Linked Service"
+ schema:
+ type: dict
+ attrs:
+ - variable: name
+ label: "Service Name"
+ schema:
+ type: string
+ default: ""
+ - variable: port
+ label: "Service Port"
+ schema:
+ type: int
+ - variable: tls
+ label: "TLS-Settings"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: tlsEntry
+ label: "Host"
+ schema:
+ type: dict
+ attrs:
+ - variable: hosts
+ label: "Certificate Hosts"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: host
+ label: "Host"
+ schema:
+ type: string
+ default: ""
+ required: true
+ - variable: scaleCert
+ label: "Select TrueNAS SCALE Certificate"
+ schema:
+ type: int
+ $ref:
+ - "definitions/certificate"
+ - variable: entrypoint
+ label: "Traefik Entrypoint"
+ description: "Entrypoint used by Traefik when using Traefik as Ingress Provider"
+ schema:
+ type: string
+ default: "websecure"
+ required: true
+ - variable: middlewares
+ label: "Traefik Middlewares"
+ description: "Add previously created Traefik Middlewares to this Ingress"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: name
+ label: "Name"
+ schema:
+ type: string
+ default: ""
+ required: true
+
+ - variable: securityContext
+ group: "Security and Permissions"
+ label: "Security Context"
+ schema:
+ type: dict
+ attrs:
+ - variable: privileged
+ label: "Privileged mode"
+ schema:
+ type: boolean
+ default: false
+ - variable: readOnlyRootFilesystem
+ label: "ReadOnly Root Filesystem"
+ schema:
+ type: boolean
+ default: false
+ - variable: allowPrivilegeEscalation
+ label: "Allow Privilege Escalation"
+ schema:
+ type: boolean
+ default: true
+
+ - variable: resources
+ group: "Resources and Devices"
+ label: ""
+ schema:
+ type: dict
+ attrs:
+ - variable: limits
+ label: "Advanced Limit Resource Consumption"
+ schema:
+ type: dict
+ attrs:
+ - variable: cpu
+ label: "CPU"
+ schema:
+ type: string
+ default: "2000m"
+ - variable: memory
+ label: "Memory RAM"
+ schema:
+ type: string
+ default: "2Gi"
+ - variable: requests
+ label: "Advanced Request minimum resources required"
+ schema:
+ type: dict
+ attrs:
+ - variable: cpu
+ label: "CPU"
+ schema:
+ type: string
+ default: "10m"
+ - variable: memory
+ label: "Memory RAM"
+ schema:
+ type: string
+ default: "50Mi"
+
+ - variable: deviceList
+ label: "Mount USB devices"
+ group: "Resources and Devices"
+ schema:
+ type: list
+ default: []
+ items:
+ - variable: deviceListEntry
+ label: "Device"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "Enable the device"
+ schema:
+ type: boolean
+ default: true
+ - variable: type
+ label: "(Advanced) Type of Storage"
+ description: "Sets the persistence type"
+ schema:
+ type: string
+ default: "hostPath"
+ hidden: true
+ - variable: readOnly
+ label: "readOnly"
+ schema:
+ type: boolean
+ default: false
+ - variable: hostPath
+ label: "Host Device Path"
+ description: "Path to the device on the host system"
+ schema:
+ type: path
+ default: "/dev/ttyUSB0"
+ - variable: mountPath
+ label: "Container Device Path"
+ description: "Path inside the container the device is mounted"
+ schema:
+ type: string
+ default: "/dev/ttyUSB0"
+
+ - variable: autoscaling
+ group: "Resources and Devices"
+ label: "Horizontal Pod Autoscaler"
+ schema:
+ type: dict
+ attrs:
+ - variable: enabled
+ label: "enabled"
+ schema:
+ type: boolean
+ default: false
+ show_subquestions_if: true
+ subquestions:
+ - variable: target
+ label: "Target"
+ description: "deployment name, defaults to main deployment"
+ schema:
+ type: string
+ default: ""
+ - variable: minReplicas
+ label: "Minimum Replicas"
+ schema:
+ type: int
+ default: 1
+ - variable: maxReplicas
+ label: "Maximum Replicas"
+ schema:
+ type: int
+ default: 5
+ - variable: targetCPUUtilizationPercentage
+ label: "Target CPU Utilization Percentage"
+ schema:
+ type: int
+ default: 80
+ - variable: targetMemoryUtilizationPercentage
+ label: "Target Memory Utilization Percentage"
+ schema:
+ type: int
+ default: 80
diff --git a/incubator/oscam/1.0.0/templates/common.yaml b/incubator/oscam/1.0.0/templates/common.yaml
new file mode 100644
index 0000000000..a6613c2ce2
--- /dev/null
+++ b/incubator/oscam/1.0.0/templates/common.yaml
@@ -0,0 +1 @@
+{{ include "common.all" . }}
diff --git a/incubator/oscam/1.0.0/test_values.yaml b/incubator/oscam/1.0.0/test_values.yaml
new file mode 100644
index 0000000000..fb4b27eb6a
--- /dev/null
+++ b/incubator/oscam/1.0.0/test_values.yaml
@@ -0,0 +1,28 @@
+# Default values for oscam
+
+image:
+ repository: ghcr.io/linuxserver/oscam
+ pullPolicy: IfNotPresent
+ tag: version-11693
+
+env:
+ TZ: UTC
+ PUID: "568"
+ # currently needed for working with /dev/ttyXYZ devices
+ # see: https://github.com/linuxserver/docker-oscam/issues/21
+ PGID: "20"
+
+service:
+ main:
+ enabled: true
+ ports:
+ main:
+ port: 8888
+
+persistence:
+ config:
+ enabled: true
+ mountPath: "/config"
+ type: pvc
+ accessMode: ReadWriteOnce
+ size: "100Gi"
diff --git a/incubator/oscam/1.0.0/values.yaml b/incubator/oscam/1.0.0/values.yaml
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/incubator/oscam/item.yaml b/incubator/oscam/item.yaml
new file mode 100644
index 0000000000..3fd8ea5531
--- /dev/null
+++ b/incubator/oscam/item.yaml
@@ -0,0 +1,3 @@
+categories:
+ - DIY
+icon_url: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/oscam-logo.png