From 3d804a4c13d5c82a7a74af43cf35910b9ea51f39 Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Sun, 17 Apr 2022 14:17:33 +0300 Subject: [PATCH] feat(apps): add 2 apps (#2498) * feat(website-shot): add website-shot * image * feat(ntfy): add ntfy * remove some envs as its the default values set upstream * fnish website-shot * extraargs not command * also load configmap * dis firebase * diff authfile location * finish * cleanup --- charts/incubator/ntfy/Chart.yaml | 25 + charts/incubator/ntfy/questions.yaml | 581 ++++++++++++++++++ charts/incubator/ntfy/templates/common.yaml | 1 + charts/incubator/ntfy/values.yaml | 44 ++ charts/incubator/website-shot/Chart.yaml | 25 + charts/incubator/website-shot/questions.yaml | 307 +++++++++ .../website-shot/templates/common.yaml | 1 + charts/incubator/website-shot/values.yaml | 16 + 8 files changed, 1000 insertions(+) create mode 100644 charts/incubator/ntfy/Chart.yaml create mode 100644 charts/incubator/ntfy/questions.yaml create mode 100644 charts/incubator/ntfy/templates/common.yaml create mode 100644 charts/incubator/ntfy/values.yaml create mode 100644 charts/incubator/website-shot/Chart.yaml create mode 100644 charts/incubator/website-shot/questions.yaml create mode 100644 charts/incubator/website-shot/templates/common.yaml create mode 100644 charts/incubator/website-shot/values.yaml diff --git a/charts/incubator/ntfy/Chart.yaml b/charts/incubator/ntfy/Chart.yaml new file mode 100644 index 00000000000..ee2d91c142a --- /dev/null +++ b/charts/incubator/ntfy/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: ntfy is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer. +home: https://github.com/truecharts/apps/tree/master/charts/stable/ntfy +icon: https://truecharts.org/_static/img/appicons/ntfy.png +keywords: +- ntfy +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: ntfy +sources: +- https://github.com/binwiederhier/ntfy/ +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/ntfy/questions.yaml b/charts/incubator/ntfy/questions.yaml new file mode 100644 index 00000000000..e6e11677743 --- /dev/null +++ b/charts/incubator/ntfy/questions.yaml @@ -0,0 +1,581 @@ +# Include{groups} +portals: + open: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "/app" +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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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" +# Include{controllerExpert} + - variable: env + group: "Container Configuration" + label: "Image Environment" + schema: + additional_attrs: true + type: dict + attrs: + - variable: NTFY_BASE_URL + label: "Base URL" + description: "Public facing base URL of the service (e.g. https://ntfy.sh)" + schema: + type: string + required: true + default: "" + - variable: NTFY_BEHIND_PROXY + label: "Behind Proxy" + description: "If set, the X-Forwarded-For header is used to determine the visitor IP address instead of the remote address of the connection." + schema: + type: boolean + default: false + - variable: ENABLE_CACHE_FILE + label: "Enable Firebase File" + description: "If set to true, it enables the firebase file by setting the NTFY_FIREBASE_KEY_FILE to \"/etc/ntfy/firebase-key.json\"" + schema: + type: boolean + default: false + - variable: ENABLE_CACHE_FILE + label: "Enable Cache File" + description: "If set to true, it enables the cache file by setting the NTFY_CACHE_FILE to \"/var/cache/ntfy/cache.db\"" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: NTFY_CACHE_DURATION + label: "Cache Duration" + description: "Duration for which messages will be buffered before they are deleted. This is required to support the since=... and poll=1 parameter. Set this to 0 to disable the cache entirely." + schema: + type: string + required: true + default: "12h" + - variable: NTFY_KEEPALIVE_INTERVAL + label: "Keepalive interval" + description: "Interval in which keepalive messages are sent to the client. This is to prevent intermediaries closing the connection for inactivity. Note that the Android app has a hardcoded timeout at 77s, so it should be less than that." + schema: + type: string + required: true + default: "45s" + - variable: NTFY_MANAGER_INTERVAL + label: "Manager Interval" + description: "Interval in which the manager prunes old messages, deletes topics and prints the stats." + schema: + type: string + required: true + default: "1m" + - variable: NTFY_GLOBAL_TOPIC_LIMIT + label: "Global Topic Limit" + description: "Rate limiting: Total number of topics before the server rejects new topics." + schema: + type: int + required: true + default: 15000 + - variable: ENABLE_VISITOR_SETTINGS + label: "Enable Visitor Settings" + description: "If set to true, it enables the visitor settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: NTFY_VISITOR_SUBSCRIPTION_LIMIT + label: "Visitor Ssubscription Limit" + description: "Rate limiting: Number of subscriptions per visitor (IP address)" + schema: + type: int + required: true + default: 30 + - variable: NTFY_VISITOR_ATTACHMENT_TOTAL_SIZE_LIMIT + label: "Visitor Attachment Total Size Limit" + description: "Rate limiting: Total storage limit used for attachments per visitor, for all attachments combined. Storage is freed after attachments expire. See NTFY_ATTACHMENT_EXPIRY_DURATION" + schema: + type: string + required: true + default: "100M" + - variable: NTFY_VISITOR_ATTACHMENT_DAILY_BANDWIDTH_LIMIT + label: "Visitor Attachment Daily Bandwidth Limit" + description: "Rate limiting: Total daily attachment download/upload traffic limit per visitor. This is to protect your bandwidth costs from exploding." + schema: + type: string + required: true + default: "500M" + - variable: NTFY_VISITOR_REQUEST_LIMIT_BURST + label: "Visitor Request Limit Burst" + description: "Rate limiting: Allowed GET/PUT/POST requests per second, per visitor. This setting is the initial bucket of requests each visitor has" + schema: + type: int + required: true + default: 60 + - variable: NTFY_VISITOR_REQUEST_LIMIT_REPLENISH + label: "Visitor Request Limit Replenish" + description: "Rate limiting: Strongly related to NTFY_VISITOR_REQUEST_LIMIT_BURST: The rate at which the bucket is refilled." + schema: + type: string + required: true + default: "5s" + - variable: NTFY_VISITOR_REQUEST_LIMIT_EXEMPT_HOSTS + label: "Visitor Request Limit Exempt Hosts" + description: "Rate limiting: List of hostnames and IPs to be exempt from request rate limiting." + schema: + type: string + default: "" + - variable: NTFY_VISITOR_EMAIL_LIMIT_BURST + label: "Visitor Email Limit Burst" + description: "Rate limiting:Initial limit of e-mails per visitor" + schema: + type: int + required: true + default: 16 + - variable: NTFY_VISITOR_EMAIL_LIMIT_REPLENISH + label: "Visitor Email Limit Replenish" + description: "Rate limiting: Strongly related to NTFY_VISITOR_EMAIL_LIMIT_BURST: The rate at which the bucket is refilled." + schema: + type: string + required: true + default: "1h" + - variable: ENABLE_ATTACHMENT_CACHE_DIR + label: "Enable Attachment Cache Directory" + description: "If set to true, it enables the attachment dir by setting the NTFY_ATTACHMENT_CACHE_DIR to \"/var/cache/ntfy/attachments\"" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT + label: "Attachment Total Size Limit" + description: "Limit of the on-disk attachment cache directory. If the limits is exceeded, new attachments will be rejected." + schema: + type: string + required: true + default: "5G" + - variable: NTFY_ATTACHMENT_FILE_SIZE_LIMIT + label: "Attachment File Size Limit" + description: "Per-file attachment size limit (e.g. 300k, 2M, 100M). Larger attachment will be rejected." + schema: + type: string + required: true + default: "15M" + - variable: NTFY_ATTACHMENT_EXPIRY_DURATION + label: "Attachment Expiry Duration" + description: "Duration after which uploaded attachments will be deleted (e.g. 3h, 20h). Strongly affects NTFY_ATTACHMENT_TOTAL_SIZE_LIMIT." + schema: + type: string + required: true + default: "3h" + - variable: ENABLE_AUTH_FILE + label: "Enable Auth File" + description: "If set to true, it enables the auth file by setting the NTFY_AUTH_FILE to \"/etc/ntfy/user.db\"" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: NTFY_AUTH_DEFAULT_ACCESS + label: "Auth Default Access" + description: "Default permissions if no matching entries in the auth database are found." + schema: + type: string + required: true + default: "read-write" + enum: + - value: "read-write" + description: "read-write" + - value: "read-only" + description: "read-only" + - value: "write-only" + description: "write-only" + - value: "deny-all" + description: "deny-all" + - variable: ENABLE_SMTP_SETTINGS + label: "Enable SMTP Settings" + description: "If set to true, it enables the SMTP settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: NTFY_SMTP_SENDER_ADDR + label: "SMTP Sender Address" + description: "SMTP server address to allow email sending" + schema: + type: string + default: "" + - variable: NTFY_SMTP_SENDER_USER + label: "SMTP Sender User" + description: "SMTP user. Only used if e-mail sending is enabled" + schema: + type: string + default: "" + - variable: NTFY_SMTP_SENDER_PASS + label: "SMTP Sender Password" + description: SMTP password. Only used if e-mail sending is enabled" + schema: + type: string + private: true + default: "" + - variable: NTFY_SMTP_SENDER_FROM + label: "SMTP Sender From Address" + description: "SMTP sender e-mail address. Only used if e-mail sending is enabled" + schema: + type: string + default: "" + - variable: NTFY_SMTP_SERVER_LISTEN + label: "SMTP Server Listen" + description: "Defines the IP address and port the SMTP server will listen on, e.g. :25 or 1.2.3.4:25" + schema: + type: string + default: "" + - variable: NTFY_SMTP_SERVER_DOMAIN + label: "SMTP Server Domain" + description: "SMTP server e-mail domain, e.g. ntfy.sh" + schema: + type: string + default: "" + - variable: NTFY_SMTP_SERVER_ADDR_PREFIX + label: "SMTP Server Address Prefix" + description: "Optional prefix for the e-mail addresses to prevent spam, e.g. ntfy-" + schema: + type: string + default: "" + +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10222 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 10222 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: config + label: "App Config Storage" + description: "Stores the Application Configuration." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + - variable: cache + label: "App Cache Storage" + description: "Stores the Application Cache." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/ntfy/templates/common.yaml b/charts/incubator/ntfy/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/ntfy/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/ntfy/values.yaml b/charts/incubator/ntfy/values.yaml new file mode 100644 index 00000000000..6696d837b81 --- /dev/null +++ b/charts/incubator/ntfy/values.yaml @@ -0,0 +1,44 @@ +image: + repository: binwiederhier/ntfy + tag: v1.20.0@sha256:f814bab7d9065ec5a30d4cf52f66c075dd39ae5e7f94e5d15b792f8cd0d8111a + pullPolicy: IfNotPresent + +extraArgs: ["serve"] + +env: + NTFY_LISTEN_HTTP: ":{{ .Values.service.main.ports.main.port }}" + # User Defined + NTFY_BASE_URL: "http://localhost:10222" + NTFY_BEHIND_PROXY: false + ENABLE_FIREBASE_FILE: false + ENABLE_CACHE_FILE: false + ENABLE_ATTACHMENT_CACHE_DIR: false + ENABLE_AUTH_FILE: false + +envFrom: + - configMapRef: + name: '{{ include "common.names.fullname" . }}-ntfy' + +service: + main: + ports: + main: + port: 10222 + +persistence: + config: + enabled: true + mountPath: "/etc/ntfy" + cache: + enabled: true + mountPath: "/var/cache/ntfy" + +configmap: + ntfy: + enabled: true + data: + # If a path is set, it enables this options. To disable set to emtpy path + NTFY_ATTACHMENT_CACHE_DIR: "{{ ternary \"/var/cache/ntfy/attachments\" \"\" .Values.env.ENABLE_ATTACHMENT_CACHE_DIR }}" + NTFY_CACHE_FILE: "{{ ternary \"/var/cache/ntfy/cache.db\" \"\" .Values.env.ENABLE_CACHE_FILE }}" + NTFY_AUTH_FILE: "{{ ternary \"/etc/ntfy/user.db\" \"\" .Values.env.ENABLE_AUTH_FILE }}" + NTFY_FIREBASE_KEY_FILE: "{{ ternary \"/etc/ntfy/firebase-key.json\" \"\" .Values.env.ENABLE_FIREBASE_FILE }}" diff --git a/charts/incubator/website-shot/Chart.yaml b/charts/incubator/website-shot/Chart.yaml new file mode 100644 index 00000000000..7632a00e1df --- /dev/null +++ b/charts/incubator/website-shot/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +appVersion: "10.6.2" +dependencies: +- name: common + repository: https://library-charts.truecharts.org + version: 9.2.8 +description: Generate a full web-page screenshot with our service, that provides rich interface to make any kind of web screenshots online for free with no limits. The simplest way to take a full page screenshot. +home: https://github.com/truecharts/apps/tree/master/charts/stable/website-shot +icon: https://truecharts.org/_static/img/appicons/website-shot.png +keywords: +- website-shot +kubeVersion: '>=1.16.0-0' +maintainers: +- email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: website-shot +sources: +- https://github.com/Flowko/website-shot +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/website-shot/questions.yaml b/charts/incubator/website-shot/questions.yaml new file mode 100644 index 00000000000..c6ecea213ff --- /dev/null +++ b/charts/incubator/website-shot/questions.yaml @@ -0,0 +1,307 @@ +# Include{groups} +portals: + open: + 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 +# Include{global} + - variable: controller + group: "Controller" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: advanced + label: "Show Advanced Controller Settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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" +# Include{controllerExpert} +# Include{containerConfig} + + - variable: service + group: "Networking and Services" + label: "Configure Service(s)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: +# Include{serviceSelector} + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 10221 + required: true + - variable: advanced + label: "Show Advanced settings" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - 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: nodePort + label: "Node Port (Optional)" + description: "This port gets exposed to the node. Only considered when service type is NodePort, Simple or LoadBalancer" + schema: + type: int + min: 9000 + max: 65535 + - variable: targetPort + label: "Target Port" + description: "The internal(!) port on the container the Application runs on" + schema: + type: int + default: 3000 + + - variable: serviceexpert + group: "Networking and Services" + label: "Show Expert Config" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + group: "Networking and Services" + label: "Host-Networking (Complicated)" + schema: + type: boolean + default: false + +# Include{serviceExpert} + +# Include{serviceList} + + - variable: persistence + label: "Integrated Persistent Storage" + description: "Integrated Persistent Storage" + group: "Storage and Persistence" + schema: + additional_attrs: true + type: dict + attrs: + - variable: screenshots + label: "App Screenshots Storage" + description: "Stores the Application Screenshots." + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: "Type of Storage" + description: "Sets the persistence type, Anything other than PVC could break rollback!" + schema: + type: string + default: "simplePVC" + enum: + - value: "simplePVC" + description: "PVC (simple)" + - value: "simpleHP" + description: "HostPath (simple)" + - value: "emptyDir" + description: "emptyDir" + - value: "pvc" + description: "pvc" + - value: "hostPath" + description: "hostPath" +# Include{persistenceBasic} + - variable: hostPath + label: "hostPath" + description: "Path inside the container the storage is mounted" + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: "EmptyDir Medium" + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: "Default" + - value: "Memory" + description: "Memory" +# Include{persistenceAdvanced} + +# Include{persistenceList} + + - variable: ingress + label: "" + group: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} + +# Include{ingressTLS} + +# Include{ingressTraefik} + +# Include{ingressExpert} + +# Include{ingressList} + +# Include{security} + + - variable: advancedSecurity + label: "Show Advanced Security Settings" + group: "Security and Permissions" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: securityContext + label: "Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: allowPrivilegeEscalation + label: "Allow Privilege Escalation" + schema: + type: boolean + default: false + - variable: runAsNonRoot + label: "runAsNonRoot" + schema: + type: boolean + default: true +# Include{securityContextAdvanced} + + - variable: podSecurityContext + group: "Security and Permissions" + label: "Pod Security Context" + schema: + additional_attrs: true + type: dict + attrs: + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 568 + - variable: runAsGroup + label: "runAsGroup" + description: The groupID this App of the user running the application" + schema: + type: int + default: 568 + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 +# Include{podSecurityContextAdvanced} + +# Include{resources} + +# Include{advanced} + +# Include{addons} diff --git a/charts/incubator/website-shot/templates/common.yaml b/charts/incubator/website-shot/templates/common.yaml new file mode 100644 index 00000000000..a6613c2ce21 --- /dev/null +++ b/charts/incubator/website-shot/templates/common.yaml @@ -0,0 +1 @@ +{{ include "common.all" . }} diff --git a/charts/incubator/website-shot/values.yaml b/charts/incubator/website-shot/values.yaml new file mode 100644 index 00000000000..73834890471 --- /dev/null +++ b/charts/incubator/website-shot/values.yaml @@ -0,0 +1,16 @@ +image: + repository: flowko1/website-shot + tag: latest@sha256:399cf0e97cbf2742a1ac362b2c69161c736fbe1b5a03584e2b3f4f36be2e6a33 + pullPolicy: IfNotPresent + +service: + main: + ports: + main: + port: 10221 + targetPort: 3000 + +persistence: + screenshots: + enabled: true + mountPath: "/usr/src/website-shot/screenshots"