Skip to content

Commit

Permalink
update for room service configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
Jumpy-Squirrel committed Nov 14, 2024
1 parent cc4171f commit dfd22ba
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 1 deletion.
2 changes: 1 addition & 1 deletion charts/eurofurence-registration-system/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
apiVersion: v2
name: eurofurence-registration-system
version: 0.0.30
version: 0.0.31
description: A helm chart that can deploy the Eurofurence Registration System.
type: application
home: https://github.com/eurofurence/reg-helm-chart
14 changes: 14 additions & 0 deletions charts/eurofurence-registration-system/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ data:
attendee_service: '{{ .Values.system.components.attendee_service.local_base_url }}'
payment_service: '{{ .Values.system.components.payment_service.local_base_url }}'
mail_service: '{{ .Values.system.components.mail_service.local_base_url }}'
{{- if .Values.system.components.room_service.enable }}
room_service: '{{ .Values.system.components.room_service.local_base_url }}'
{{- end }}
id_token_cookie_name: '{{ .Values.system.components.auth_service.id_token_cookie_name }}'
access_token_cookie_name: '{{ .Values.system.components.auth_service.access_token_cookie_name }}'
admin_group: '{{ .Values.system.components.auth_service.admin_group_id }}'
Expand All @@ -44,6 +47,17 @@ data:
success_redirect: '{{ $public_base_url }}/app/register'
failure_redirect: '{{ $public_base_url }}/app/register'
{{- end }}
{{- with .Values.system.components.room_service }}
groups:
enable: {{ and .enable (eq .mode "groups") }}
max_size: {{ .max_group_size }}
flags:
{{- .group_flags | toYaml | nindent 8 }}
rooms:
enable: {{ and .enable (or (eq .mode "groups") (eq .mode "packages")) }}
flags:
{{- .room_flags | toYaml | nindent 8 }}
{{- end }}
choices:
flags:
{{- .Values.choices.flags | toYaml | nindent 8 }}
Expand Down
11 changes: 11 additions & 0 deletions charts/eurofurence-registration-system/tests/configmap_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@ tests:
attendee_service: 'http://attendee-service:8080'
payment_service: 'http://payment-service:8080'
mail_service: 'http://mail-service:8080'
room_service: 'http://room-service:8080'
id_token_cookie_name: 'JWT'
access_token_cookie_name: 'AUTH'
admin_group: 'D1DQADM'
Expand All @@ -178,6 +179,16 @@ tests:
subject_prefix: 'AWECON'
success_redirect: 'https://my.domain.example.com/hello/you/app/register'
failure_redirect: 'https://my.domain.example.com/hello/you/app/register'
groups:
enable: false
max_size: 6
flags:
- public
rooms:
enable: false
flags:
- handicapped
- final
choices:
flags:
ev:
Expand Down
1 change: 1 addition & 0 deletions charts/eurofurence-registration-system/values-example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ system:
room_service:
enable: true
join_link_base_url: 'http://localhost:10000'
mode: groups
go_live:
public:
booking_code: Kaiser-Wilhelm-Koog
Expand Down
10 changes: 10 additions & 0 deletions charts/eurofurence-registration-system/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -894,6 +894,10 @@
"description": "deploy the room service",
"default": "false"
},
"local_base_url": {
"type": "string",
"description": "the local url used to access this service, including protocol and port, with no trailing /"
},
"join_link_base_url": {
"type": "string",
"description": "the base url to construct group join links from, with no trailing slash"
Expand All @@ -903,6 +907,12 @@
"description": "the maximum size for roomshare groups",
"default": 6
},
"mode": {
"type": "string",
"enum": ["off", "external", "packages", "groups"],
"description": "the type of room management - see values.yaml comment for detailed description",
"default": "off"
},
"group_flags": {
"type": "array",
"description": "the list of available group flags",
Expand Down
54 changes: 54 additions & 0 deletions charts/eurofurence-registration-system/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,61 @@ system:

room_service:
enable: false
local_base_url: http://room-service:8080
max_group_size: 6
#
# the mode of room management this convention employs.go_live:
#
# off (default) = room management features are completely disabled.
#
# Completely hides all relevant pages and options, only displays a few simple
# messages in some places.
#
# typical usecase: private party, housemeet, pay-at-the-door
#
# external = the venue handles all room bookings directly
#
# The only feature the room service offers is an API endpoint with a countdown
# until revealing a secret codeword. Staff can have a different secret codeword
# and a different reveal time.
#
# See the go_live section to configure the secret codewords.
#
# The idea is that you show an info page to accepted attendees called "how to book a room".
#
# Email generator standalone page: https://github.com/eurofurence/reg-hotel-booking
# (not maintained any more because Eurofurence does not currently need it)
#
# packages = sell accomodation as packages
#
# Note: currently somewhat unfinished because none of the current conventions use this mode.
#
# Use this when the convention is reselling individual rooms or beds
# - allows individual pricing of room options
# - attendees enter their roommate ids in their registration
# (currently not implemented)
# - rooms can be maintained in the database
# - packages become unavailable when their quota is exceeded
# (currently not implemented)
#
# In this mode, you can go wild with accommodation packages.
#
# typical usecase: small hotels (large hotels will often force you to use their booking provider)
#
# groups = attendees can form room sharing groups which are then assigned to rooms by staff
#
# Use this when you want staff to have fine-grained control over room assignments
# - staff needs to watch that the number of accepted attendees does not exceed available beds
# - staff needs to enter available rooms in the registration system
# - staff needs to do room assignment into actual rooms prior to the convention
# - conventions can track keys given to the attendees during onsite check-in
# - individual pricing of room options is not directly supported, but with a trick you can do it anyway:
# simply add regular sales packages with the various room prices. If you do this, staff will need to
# manually ensure no-one unintentionally gets a room they haven't paid for.
#
# typical usecase: youth hostels (the price of registration automatically includes a bed)
#
mode: 'off' # external, packages, groups
group_flags:
- public
room_flags:
Expand Down

0 comments on commit dfd22ba

Please sign in to comment.