Add initial work on external-service App (#791)

* Add initial work on external-service support

* remove targetport setting from external-service and allow setting the port

* add external service icon
This commit is contained in:
Kjeld Schouten-Lebbing 2021-08-23 22:24:58 +02:00 committed by GitHub
parent 6fa7438342
commit 6b895050b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 318 additions and 0 deletions

View File

@ -0,0 +1,24 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS

View File

@ -0,0 +1,26 @@
apiVersion: v2
appVersion: auto
dependencies:
- name: common
repository: https://truecharts.org/
version: 6.8.4
deprecated: false
description: Allow external services to be used like Apps.
home: https://github.com/truecharts/apps/tree/master/charts/stable/external-service
icon: https://truecharts.org/_static/img/external-service-icon.png
keywords:
- external-service
- reverse-proxy
kubeVersion: '>=1.16.0-0'
maintainers:
- email: info@truecharts.org
name: TrueCharts
url: truecharts.org
- email: kjeld@schouten-lebbing.nl
name: Ornias1993
url: truecharts.org
name: external-service
sources:
- https://github.com/truecharts/apps/tree/master/charts/stable/external-service
type: application
version: 0.0.1

View File

@ -0,0 +1,3 @@
categories:
- networking
icon_url: https://truecharts.org/_static/img/external-service-icon.png

View File

@ -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.
##
# Disable Deployment
controller:
enabled: false
##
# Most other defaults are set in questions.yaml
# For other options please refer to the wiki, default_values.yaml or the common library chart
##

View File

@ -0,0 +1,234 @@
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: 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: "ExternalIP gets connected to using an IP and port, ExternalName gets connected to using a domain name"
schema:
type: string
default: "ExternalIP"
enum:
- value: "ExternalName"
description: "ExternalName"
- value: "ExternalIP"
description: "ExternalIP"
- variable: externalIP
label: "External Service Domainname"
description: "Domainname of External service"
schema:
show_if: [["type", "=", "ExternalName"]]
type: string
default: "1.1.1.1"
- variable: externalIP
label: "External Service IP"
description: "IP of External service"
schema:
show_if: [["type", "=", "ExternalIP"]]
type: string
default: "1.1.1.1"
- 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: port
label: "Container Port"
schema:
type: int
default: 80
editable: false
hidden: false
- 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

View File

@ -0,0 +1 @@
{{ include "common.all" . }}

View File

@ -0,0 +1,15 @@
# Default values for Jackett.
# Disable Deployment
controller:
enabled: false
service:
main:
enabled: true
type: ExternalIP
externalIP: "1.1.1.1"
ports:
main:
Type: HTTPS
port: 443

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB