feat(mealie) Mealie OIDC (#20252)

**Description**
<!--
Please include a summary of the change and which issue is fixed. Please
also include relevant motivation and context. List any dependencies that
are required for this change.
-->
⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [x] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [x] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [x] ⚖️ My code follows the style guidelines of this project
- [x] 👀 I have performed a self-review of my own code
- [x] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [x] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [x] ⬆️ I increased versions for any altered app according to semantic
versioning
- [x] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):` or `chore(chart-name):`

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Jamie 2024-04-13 19:36:35 -04:00 committed by GitHub
parent 116335a865
commit 9a77771e37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 100 additions and 1 deletions

View File

@ -33,4 +33,4 @@ sources:
- https://github.com/truecharts/charts/tree/master/charts/stable/mealie
- https://ghcr.io/mealie-recipes/mealie
type: application
version: 21.10.4
version: 21.11.0

View File

@ -365,6 +365,68 @@ questions:
schema:
type: string
default: mail
- variable: oidc
label: OIDC
schema:
additional_attrs: true
type: dict
attrs:
- variable: auth_enabled
label: Auth Enabled
description: Enables authentication via OpenID Connect in addition to built-in Mealie auth
schema:
type: boolean
default: false
- variable: signup_enabled
label: Signup Enabled
description: Enables new users to be created when signing in for the first time with OIDC
schema:
type: boolean
default: false
- variable: configuration_url
label: Configuration URL
description: The URL to the OIDC configuration of your provider.
schema:
type: string
default: "https://auth.example.com/.well-known/openid-configuration"
required: true
- variable: client_id
label: Client Id
description: The client id of your configured client in your provider
schema:
type: string
default: "mealie"
required: true
- variable: user_group
label: User Group
description: If specified, only users belonging to this group will be able to successfully authenticate, regardless of the OIDC_ADMIN_GROUP
schema:
type: string
default: ""
- variable: admin_group
label: Admin Group
description: If specified, users belonging to this group will be made an admin.
schema:
type: string
default: ""
- variable: auto_redirect
label: Auto Redirect
description: If True, then the login page will be bypassed an you will be sent directly to your Identity Provider. You can still get to the login page by adding ?direct=1 to the login URL
schema:
type: boolean
default: false
- variable: provider_name
label: Provider Name
description: The provider name is shown in SSO login button. "Login with <OIDC_PROVIDER_NAME>"
schema:
type: string
default: "OAuth"
- variable: remember_me
label: Remember Me
description: Because redirects bypass the login screen, you cant extend your session by clicking the "Remember Me" checkbox. By setting this value to true, a session will be extended as if "Remember Me" was checked
schema:
type: boolean
default: false
# Include{containerConfig}
# Include{podOptions}
# Include{serviceRoot}

View File

@ -93,5 +93,32 @@ api:
{{- with $api.ldap.mail_attribute }}
LDAP_MAIL_ATTRIBUTE: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.auth_enabled }}
OIDC_AUTH_ENABLED: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.signup_enabled }}
OIDC_SIGNUP_ENABLED: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.configuration_url }}
OIDC_CONFIGURATION_URL: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.client_id }}
OIDC_CLIENT_ID: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.user_group }}
OIDC_USER_GROUP: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.admin_group }}
OIDC_ADMIN_GROUP: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.auto_redirect }}
OIDC_AUTO_REDIRECT: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.provider_name }}
OIDC_PROVIDER_NAME: {{ . | quote }}
{{- end -}}
{{- with $api.oidc.remember_me }}
OIDC_REMEMBER_ME: {{ . | quote }}
{{- end -}}
{{- end -}}
{{- end -}}

View File

@ -55,6 +55,16 @@ mealie:
id_attribute: uid
name_attribute: name
mail_attribute: mail
oidc:
auth_enabled: false
signup_enabled: true
configuration_url: ""
client_id: ""
user_group: ""
admin_group: ""
auto_redirect: false
provider_name: "OAuth"
remember_me: false
workload:
main:
podSpec: