diff --git a/charts/incubator/muse/.helmignore b/charts/incubator/muse/.helmignore new file mode 100644 index 00000000000..77ca5567b26 --- /dev/null +++ b/charts/incubator/muse/.helmignore @@ -0,0 +1,30 @@ +# 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 +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png diff --git a/charts/incubator/muse/CHANGELOG.md b/charts/incubator/muse/CHANGELOG.md new file mode 100644 index 00000000000..825c32f0d03 --- /dev/null +++ b/charts/incubator/muse/CHANGELOG.md @@ -0,0 +1 @@ +# Changelog diff --git a/charts/incubator/muse/Chart.yaml b/charts/incubator/muse/Chart.yaml new file mode 100644 index 00000000000..f5c02eaa7f2 --- /dev/null +++ b/charts/incubator/muse/Chart.yaml @@ -0,0 +1,32 @@ +apiVersion: v2 +appVersion: "2.1.9" +dependencies: + - name: common + repository: https://library-charts.truecharts.org + version: 11.1.2 +deprecated: false +description: A self-hosted midwestern Discord music bot that doesn't suck. +home: https://truecharts.org/charts/incubator/muse +icon: https://truecharts.org/img/hotlink-ok/chart-icons/muse.png +keywords: + - muse + - media + - discord-bot +kubeVersion: ">=1.16.0-0" +maintainers: + - email: info@truecharts.org + name: TrueCharts + url: https://truecharts.org +name: muse +sources: + - https://github.com/truecharts/charts/tree/master/charts/incubator/muse + - https://github.com/codetheweb/muse + - https://hub.docker.com/r/codetheweb/muse +type: application +version: 0.0.1 +annotations: + truecharts.org/catagories: | + - media + - discord-bot + truecharts.org/SCALE-support: "true" + truecharts.org/grade: U diff --git a/charts/incubator/muse/README.md b/charts/incubator/muse/README.md new file mode 100644 index 00000000000..7e59600739c --- /dev/null +++ b/charts/incubator/muse/README.md @@ -0,0 +1 @@ +# README diff --git a/charts/incubator/muse/docs/installation_notes.md b/charts/incubator/muse/docs/installation_notes.md new file mode 100644 index 00000000000..79b19bce355 --- /dev/null +++ b/charts/incubator/muse/docs/installation_notes.md @@ -0,0 +1,30 @@ +# Installation Notes + +- `Discord Token` can be acquired [here](https://discordapp.com/developers/applications) by creating a 'New Application', then going to 'Bot'. +- `Spotify Client Id` and `Spotify Client Secret` can be acquired [here](https://developer.spotify.com/dashboard/applications) with 'Create a Client ID'. +- `Youtube API Key` can be acquired by [creating a new project](https://console.developers.google.com/) in Google's Developer Console, enabling the YouTube API, and creating an API key under credentials. + +Optionally you can enable the `advanced` settings and set the following: + +- `Cache Limit` can accept MB or GB string values for example: **512MB** or **10GB**. +- `Bot Status` has list of values for the discord bot: + - Online + - Away + - Do not Disturb +- `Bot Activity Type` has list of values for the discord bot: + - Playing + - Listening + - Watching + - Streaming +- Set `Bot Activity` to whatever you want that follows the activity type. +- If you plan to publicly share your bot with more servers other than your own, its recommended by the upstream project to set `Register Commands On Bot` to **true** if its more than 10 guilds. The bot is purpose built to support multiple servers. + +:::note + +If `Bot Activity Type` set to **Streaming** then `Bot Activity URL` will be shown and is required to be set by adding either a youtube or twitch stream url. + +::: + +Once installed, check the app logs to get the discord invite link that auto-generated and then invite the bot into your server. + +The bot will play music only in voice channels. diff --git a/charts/incubator/muse/icon.png b/charts/incubator/muse/icon.png new file mode 100644 index 00000000000..dc0641529d1 Binary files /dev/null and b/charts/incubator/muse/icon.png differ diff --git a/charts/incubator/muse/questions.yaml b/charts/incubator/muse/questions.yaml new file mode 100644 index 00000000000..eeff40571d2 --- /dev/null +++ b/charts/incubator/muse/questions.yaml @@ -0,0 +1,171 @@ +# Include{groups} +portals: {} +questions: +# Include{global} +# Include{controller} +# Include{replicas} +# Include{replica1} +# Include{controllerExpertExtraArgs} + - variable: env + group: App Configuration + label: Image Environment + schema: + additional_attrs: true + type: dict + attrs: + - variable: DISCORD_TOKEN + label: Discord Token + schema: + type: string + required: true + default: "" + - variable: YOUTUBE_API_KEY + label: Youtube API Key + description: Google's Developer Console credentials API key. + schema: + type: string + required: true + default: "" + - variable: SPOTIFY_CLIENT_ID + label: Spotify Client Id + schema: + type: string + required: true + default: "" + - variable: SPOTIFY_CLIENT_SECRET + label: Spotify Client Secret + schema: + type: string + required: true + default: "" + - variable: advanced + label: Show Advanced Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: CACHE_LIMIT + label: Cache Limit + schema: + type: string + required: true + default: 2GB + - variable: BOT_STATUS + label: Bot Status + schema: + type: string + default: online + enum: + - value: online + description: Online + - value: idle + description: Away + - value: dnd + description: Do not Disturb + - variable: BOT_ACTIVITY_TYPE + label: Bot Activity Type + schema: + type: string + default: PLAYING + enum: + - value: PLAYING + description: Playing + - value: LISTENING + description: Listening + - value: WATCHING + description: Watching + - value: STREAMING + description: Streaming + - variable: BOT_ACTIVITY + label: Bot Activity + schema: + type: string + default: "" + - variable: BOT_ACTIVITY_URL + label: Bot Activity URL + description: requires either a youtube or twitch stream to be set. + schema: + type: string + default: "" + show_if: [[BOT_ACTIVITY_TYPE, "=", "STREAMING"]] + - variable: REGISTER_COMMANDS_ON_BOT + label: Register Commands On Bot + description: Enable Bot-wide commands if your muse instance is running on 10+ guilds. + schema: + type: boolean + default: false +# Include{containerConfig} +# Include{serviceExpertRoot} + default: false +# Include{serviceExpert} +# Include{serviceList} +# Include{persistenceRoot} + - variable: config + label: App Config Storage + description: Stores the Application Configuration. + schema: + additional_attrs: true + type: dict + attrs: +# Include{persistenceBasic} +# Include{persistenceList} +# Include{ingressRoot} + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: +# Include{ingressDefault} +# Include{ingressTLS} +# Include{ingressTraefik} +# Include{ingressList} +# Include{security} +# Include{securityContextAdvancedRoot} + - 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: false + - variable: runAsNonRoot + label: runAsNonRoot + schema: + type: boolean + default: false +# Include{podSecurityContextRoot} + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 0 + - variable: runAsGroup + label: runAsGroup + description: The groupID this App of the user running the application + schema: + type: int + default: 0 + - 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} +# Include{codeserver} +# Include{vpn} +# Include{documentation} diff --git a/charts/incubator/muse/templates/common.yaml b/charts/incubator/muse/templates/common.yaml new file mode 100644 index 00000000000..c1a366e1cf0 --- /dev/null +++ b/charts/incubator/muse/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.common.loader.all" . }} diff --git a/charts/incubator/muse/values.yaml b/charts/incubator/muse/values.yaml new file mode 100644 index 00000000000..6cd8fbd48e0 --- /dev/null +++ b/charts/incubator/muse/values.yaml @@ -0,0 +1,39 @@ +image: + repository: tccr.io/truecharts/muse + pullPolicy: IfNotPresent + tag: 2.1.9@sha256:7451ede551f75219692bbef2e662b540c9a3f585485597bff252777f1c6e42f0 + +securityContext: + runAsNonRoot: false + readOnlyRootFilesystem: false + +podSecurityContext: + runAsUser: 0 + runAsGroup: 0 + +service: + main: + enabled: false + ports: + main: + enabled: false + +env: + DATA_DIR: /config + DISCORD_TOKEN: "" + SPOTIFY_CLIENT_ID: "" + SPOTIFY_CLIENT_SECRET: "" + YOUTUBE_API_KEY: "" + # CACHE_LIMIT: 2GB + # BOT_STATUS: online + # BOT_ACTIVITY_TYPE: PLAYING + # BOT_ACTIVITY: A incubator app + # BOT_ACTIVITY_URL: https://www.youtube.com/truecharts + +persistence: + config: + enabled: true + mountPath: /config + +portal: + enabled: false