Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

salt: Fix shell-ui configuration upgrade #3499

Open
wants to merge 1 commit into
base: development/2.10
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions salt/metalk8s/addons/ui/deployed/ui-configuration.sls
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,41 @@ Create metalk8s-ui-config ConfigMap:

{%- else %}

{%- if metalk8s_shell_ui_config is not none %}
{%- set config_data = metalk8s_shell_ui_config.data['config.yaml'] | load_yaml %}

{%- if config_data.apiVersion == 'addons.metalk8s.scality.com/v1alpha1' and 'oidc' in config_data.spec %}

Create metalk8s-ui-config ConfigMap:
metalk8s_kubernetes.object_present:
- manifest:
apiVersion: v1
kind: ConfigMap
metadata:
name: metalk8s-ui-config
namespace: metalk8s-ui
data:
config.yaml: |-
apiVersion: addons.metalk8s.scality.com/v1alpha2
kind: UIConfig
spec:
kind: "OIDC"
{{ config_data.spec.oidc | yaml(False) | indent(14) }}

{%- else %}

metalk8s-ui-config ConfigMap already exist:
test.succeed_without_changes: []

{%- endif %}

{%- else %}

Comment on lines +70 to +99
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure to understand this part:

  • we have both metalk8s-ui-config and metalk8s-shell-ui-config already existing
  • we want to copy over the OIDC settings from the latter to the former, in case the shell-ui config is in the old format

But if that's true, we're overwriting the previous metalk8s-ui-config, without checking its own apiVersion or previous contents (what if we changed the basePath?)

metalk8s-ui-config ConfigMap already exist:
test.succeed_without_changes: []

{%- endif %}

{%- endif %}

{%- if metalk8s_shell_ui_config is none %}
Expand Down Expand Up @@ -252,6 +284,30 @@ Convert old Metalk8s Shell UI ServiceConfiguration to new format:
fr: "À propos"
icon: "fas fa-question-circle"
{%- endif %}
{%- if 'oidc' in config_data.spec %}
oidc:
{{ config_data.spec.oidc | yaml(False) | indent(16) }}
{%- endif %}
{%- if 'userGroupsMapping' in config_data.spec %}
userGroupsMapping:
{{ config_data.spec.userGroupsMapping | yaml(False) | indent(16) }}
{%- endif %}
{%- if 'logo' in config_data.spec %}
logo:
{{ config_data.spec.logo | yaml(False) | indent(16) }}
{%- endif %}
{%- if 'favicon' in config_data.spec %}
favicon:
{{ config_data.spec.favicon | yaml(False) | indent(16) }}
{%- endif %}
{%- if 'canChangeLanguage' in config_data.spec %}
canChangeLanguage:
{{ config_data.spec.canChangeLanguage | yaml(False) | indent(16) }}
{%- endif %}
{%- if 'canChangeTheme' in config_data.spec %}
canChangeTheme:
{{ config_data.spec.canChangeTheme | yaml(False) | indent(16) }}
{%- endif %}
Comment on lines +287 to +310
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's really too verbose, don't you think? Would be good to reimplement the service_config_updated state module we built in another project (:wink:)...


{%- elif config_data.apiVersion == 'addons.metalk8s.scality.com/v1alpha2' %}

Expand Down