oauthConfig.j2 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. {% macro identity_provider_config(identity_provider) %}
  2. apiVersion: v1
  3. kind: {{ identity_provider.kind }}
  4. {% if identity_provider.kind == 'HTPasswdPasswordIdentityProvider' %}
  5. file: {{ identity_provider.filename }}
  6. {% elif identity_provider.kind == 'BasicAuthPasswordIdentityProvider' %}
  7. url: {{ identity_provider.url }}
  8. {% for key in ('ca', 'certFile', 'keyFile') %}
  9. {% if key in identity_provider %}
  10. {{ key }}: "{{ identity_provider[key] }}"
  11. {% endif %}
  12. {% endfor %}
  13. {% elif identity_provider.kind == 'LDAPPasswordIdentityProvider' %}
  14. attributes:
  15. {% for attribute_key in identity_provider.attributes %}
  16. {{ attribute_key }}:
  17. {% for attribute_value in identity_provider.attributes[attribute_key] %}
  18. - {{ attribute_value }}
  19. {% endfor %}
  20. {% endfor %}
  21. {% for key in ('bindDN', 'bindPassword', 'ca') %}
  22. {{ key }}: "{{ identity_provider[key] }}"
  23. {% endfor %}
  24. {% for key in ('insecure', 'url') %}
  25. {{ key }}: {{ identity_provider[key] }}
  26. {% endfor %}
  27. {% elif identity_provider.kind == 'RequestHeaderIdentityProvider' %}
  28. headers: {{ identity_provider.headers }}
  29. {% if 'clientCA' in identity_provider %}
  30. clientCA: {{ identity_provider.clientCA }}
  31. {% endif %}
  32. {% elif identity_provider.kind == 'GitHubIdentityProvider' %}
  33. clientID: {{ identity_provider.clientID }}
  34. clientSecret: {{ identity_provider.clientSecret }}
  35. {% elif identity_provider.kind == 'GoogleIdentityProvider' %}
  36. clientID: {{ identity_provider.clientID }}
  37. clientSecret: {{ identity_provider.clientSecret }}
  38. {% if 'hostedDomain' in identity_provider %}
  39. hostedDomain: {{ identity_provider.hostedDomain }}
  40. {% endif %}
  41. {% elif identity_provider.kind == 'OpenIDIdentityProvider' %}
  42. clientID: {{ identity_provider.clientID }}
  43. clientSecret: {{ identity_provider.clientSecret }}
  44. claims:
  45. id: identity_provider.claims.id
  46. {% for claim_key in ('preferredUsername', 'name', 'email') %}
  47. {% if claim_key in identity_provider.claims %}
  48. {{ claim_key }}: {{ identity_provider.claims[claim_key] }}
  49. {% endif %}
  50. {% endfor %}
  51. urls:
  52. authorize: {{ identity_provider.urls.authorize }}
  53. token: {{ identity_provider.urls.token }}
  54. {% if 'userInfo' in identity_provider.urls %}
  55. userInfo: {{ identity_provider.userInfo }}
  56. {% endif %}
  57. {% if 'extraScopes' in identity_provider %}
  58. extraScopes:
  59. {% for scope in identity_provider.extraScopes %}
  60. - {{ scope }}
  61. {% endfor %}
  62. {% endif %}
  63. {% if 'extraAuthorizeParameters' in identity_provider %}
  64. extraAuthorizeParameters:
  65. {% for param_key, param_value in identity_provider.extraAuthorizeParameters.iteritems() %}
  66. {{ param_key }}: {{ param_value }}
  67. {% endfor %}
  68. {% endif %}
  69. {% endif %}
  70. {% endmacro %}
  71. oauthConfig:
  72. assetPublicURL: {{ openshift.master.public_console_url }}/
  73. grantConfig:
  74. method: {{ openshift.master.oauth_grant_method }}
  75. identityProviders:
  76. {% for identity_provider in openshift.master.identity_providers %}
  77. - name: {{ identity_provider.name }}
  78. challenge: {{ identity_provider.challenge }}
  79. login: {{ identity_provider.login }}
  80. provider:
  81. {{ identity_provider_config(identity_provider) }}
  82. {%- endfor %}
  83. masterPublicURL: {{ openshift.master.public_api_url }}
  84. masterURL: {{ openshift.master.api_url }}
  85. sessionConfig:
  86. sessionMaxAgeSeconds: {{ openshift.master.session_max_seconds }}
  87. sessionName: {{ openshift.master.session_name }}
  88. sessionSecretsFile: {{ openshift.master.session_secrets_file }}
  89. tokenConfig:
  90. accessTokenMaxAgeSeconds: {{ openshift.master.access_token_max_seconds }}
  91. authorizeTokenMaxAgeSeconds: {{ openshift.master.auth_token_max_seconds }}
  92. {# Comment to preserve newline after authorizeTokenMaxAgeSeconds #}