<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://infocepo.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Onyxia-openid-install</id>
	<title>Onyxia-openid-install - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://infocepo.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Onyxia-openid-install"/>
	<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Onyxia-openid-install&amp;action=history"/>
	<updated>2026-05-16T03:14:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://infocepo.com/wiki/index.php?title=Onyxia-openid-install&amp;diff=1847&amp;oldid=prev</id>
		<title>Tcepo: Created page with &quot;== onyxia + openid install ==  #Official : https://docs.onyxia.sh  * Configurez : &lt;pre&gt; #https://docs.onyxia.sh/ domainRoot=example.com appName=datalab s3Url=https://s3.example.com &lt;/pre&gt;  * Executez : &lt;pre&gt; mv ~/${appName} ~/${appName}-$(date '+%Y%m%d') mkdir ~/${appName} cd ~/${appName} #values cat &lt;&lt;EOT &gt;${appName}-values.yaml ingress:   enabled: true   hosts:     - host: &quot;${appName}.${domainRoot}&quot;   annotations:     cert-manager.io/cluster-issuer: letsencrypt-prod...&quot;</title>
		<link rel="alternate" type="text/html" href="https://infocepo.com/wiki/index.php?title=Onyxia-openid-install&amp;diff=1847&amp;oldid=prev"/>
		<updated>2024-08-14T17:07:14Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== onyxia + openid install ==  #Official : https://docs.onyxia.sh  * Configurez : &amp;lt;pre&amp;gt; #https://docs.onyxia.sh/ domainRoot=example.com appName=datalab s3Url=https://s3.example.com &amp;lt;/pre&amp;gt;  * Executez : &amp;lt;pre&amp;gt; mv ~/${appName} ~/${appName}-$(date &amp;#039;+%Y%m%d&amp;#039;) mkdir ~/${appName} cd ~/${appName} #values cat &amp;lt;&amp;lt;EOT &amp;gt;${appName}-values.yaml ingress:   enabled: true   hosts:     - host: &amp;quot;${appName}.${domainRoot}&amp;quot;   annotations:     cert-manager.io/cluster-issuer: letsencrypt-prod...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== onyxia + openid install ==&lt;br /&gt;
 #Official : https://docs.onyxia.sh&lt;br /&gt;
&lt;br /&gt;
* Configurez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#https://docs.onyxia.sh/&lt;br /&gt;
domainRoot=example.com&lt;br /&gt;
appName=datalab&lt;br /&gt;
s3Url=https://s3.example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Executez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mv ~/${appName} ~/${appName}-$(date '+%Y%m%d')&lt;br /&gt;
mkdir ~/${appName}&lt;br /&gt;
cd ~/${appName}&lt;br /&gt;
#values&lt;br /&gt;
cat &amp;lt;&amp;lt;EOT &amp;gt;${appName}-values.yaml&lt;br /&gt;
ingress:&lt;br /&gt;
  enabled: true&lt;br /&gt;
  hosts:&lt;br /&gt;
    - host: &amp;quot;${appName}.${domainRoot}&amp;quot;&lt;br /&gt;
  annotations:&lt;br /&gt;
    cert-manager.io/cluster-issuer: letsencrypt-prod&lt;br /&gt;
  tls:&lt;br /&gt;
    - secretName: ${appName}.${domainRoot}-tls&lt;br /&gt;
      hosts:&lt;br /&gt;
        - &amp;quot;${appName}.${domainRoot}&amp;quot;&lt;br /&gt;
EOT&lt;br /&gt;
helm repo add onyxia https://InseeFrLab.github.io/onyxia&lt;br /&gt;
helm repo update&lt;br /&gt;
helm search repo onyxia --versions |head&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Configurez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
appVersion=8.20.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Choisir un mot de passe pour l'installation :&lt;br /&gt;
 CHANGEME1&lt;br /&gt;
&lt;br /&gt;
* Executez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
helm upgrade --install ${appName} onyxia/onyxia -n ${appName} --create-namespace \&lt;br /&gt;
--version &amp;quot;${appVersion}&amp;quot; \&lt;br /&gt;
-f ${appName}-values.yaml&lt;br /&gt;
&lt;br /&gt;
# Keycloak&lt;br /&gt;
helm repo add bitnami https://charts.bitnami.com/bitnami&lt;br /&gt;
keycloakVersion=$(curl -s https://raw.githubusercontent.com/InseeFrLab/onyxia-ops/main/apps/keycloak/Chart.yaml | sed -rn 's#^[[:space:]]+version: (.*)$#\1#p')&lt;br /&gt;
export appVersion&lt;br /&gt;
export appDomain=${appName}.${domainRoot}&lt;br /&gt;
export DOMAIN=${domainRoot}&lt;br /&gt;
#https://github.com/InseeFrLab/onyxia-ops/blob/main/apps/keycloak/values.yaml&lt;br /&gt;
[ -z &amp;quot;${CHANGEME1}&amp;quot; ] &amp;amp;&amp;amp;echo CHANGEME1 &amp;amp;&amp;amp;read i &amp;amp;&amp;amp;export CHANGEME1=$i&lt;br /&gt;
CHANGEME2=${CHANGEME1}&lt;br /&gt;
CHANGEME3=${CHANGEME2}&lt;br /&gt;
cat &amp;lt;&amp;lt;EOT &amp;gt;keycloak-values.yaml&lt;br /&gt;
global:&lt;br /&gt;
  postgresql:&lt;br /&gt;
    auth:&lt;br /&gt;
      postgresPassword: &amp;quot;$CHANGEME1&amp;quot;&lt;br /&gt;
      username: &amp;quot;keycloak&amp;quot;&lt;br /&gt;
      password: &amp;quot;$CHANGEME2&amp;quot;&lt;br /&gt;
      database: &amp;quot;keycloak&amp;quot;&lt;br /&gt;
#keycloak:&lt;br /&gt;
auth:&lt;br /&gt;
  adminUser: keycloak&lt;br /&gt;
  adminPassword: $CHANGEME3&lt;br /&gt;
production: true&lt;br /&gt;
tls: &lt;br /&gt;
  enabled: false&lt;br /&gt;
  autoGenerated: false&lt;br /&gt;
proxy: edge&lt;br /&gt;
httpRelativePath: &amp;quot;/auth/&amp;quot;&lt;br /&gt;
replicaCount: 1&lt;br /&gt;
ingress:&lt;br /&gt;
  # If `true`, an Ingress is created&lt;br /&gt;
  enabled: true&lt;br /&gt;
  #ingressClassName: nginx&lt;br /&gt;
  # Ingress annotations&lt;br /&gt;
  annotations:&lt;br /&gt;
    ## Resolve HTTP 502 error using ingress-nginx:&lt;br /&gt;
    ## See https://www.ibm.com/support/pages/502-error-ingress-keycloak-response&lt;br /&gt;
    nginx.ingress.kubernetes.io/proxy-buffer-size: 128k&lt;br /&gt;
    cert-manager.io/cluster-issuer: letsencrypt-prod&lt;br /&gt;
  # List of rules for the Ingress&lt;br /&gt;
  hostname: &amp;quot;auth-lab.$DOMAIN&amp;quot;&lt;br /&gt;
  # TLS configuration&lt;br /&gt;
  extraTls:&lt;br /&gt;
     - hosts:&lt;br /&gt;
       - auth-lab.$DOMAIN&lt;br /&gt;
       secretName: auth-lab.$DOMAIN-tls&lt;br /&gt;
&lt;br /&gt;
extraStartupArgs: &amp;quot;--features=preview --log-level=org.keycloak.events:debug&amp;quot;&lt;br /&gt;
&lt;br /&gt;
extraEnvVars: &lt;br /&gt;
  - name: ONYXIA_RESOURCES_ALLOWED_ORIGINS&lt;br /&gt;
    value: &amp;quot;https://${appDomain}, http://localhost, http://127.0.0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
initContainers: |&lt;br /&gt;
  - name: realm-ext-provider&lt;br /&gt;
    image: curlimages/curl&lt;br /&gt;
    imagePullPolicy: IfNotPresent&lt;br /&gt;
    command:&lt;br /&gt;
      - sh&lt;br /&gt;
    args:&lt;br /&gt;
      - -c&lt;br /&gt;
      - |&lt;br /&gt;
        curl -L -f -S -o /extensions/onyxia-web.jar https://github.com/InseeFrLab/onyxia/releases/download/v${appVersion}/keycloak-theme.jar&lt;br /&gt;
    volumeMounts:&lt;br /&gt;
      - name: extensions&lt;br /&gt;
        mountPath: /extensions&lt;br /&gt;
&lt;br /&gt;
extraVolumeMounts: |&lt;br /&gt;
  - name: extensions&lt;br /&gt;
    mountPath: /opt/bitnami/keycloak/providers&lt;br /&gt;
&lt;br /&gt;
extraVolumes: |&lt;br /&gt;
  - name: extensions&lt;br /&gt;
    emptyDir: {}&lt;br /&gt;
&lt;br /&gt;
externalDatabase:&lt;br /&gt;
  host: keycloakv3-postgresql&lt;br /&gt;
  port: 5432&lt;br /&gt;
  user: keycloak&lt;br /&gt;
  password: $CHANGEME2&lt;br /&gt;
  database: keycloak&lt;br /&gt;
EOT&lt;br /&gt;
helm upgrade --install keycloak bitnami/keycloak -n ${appName} --create-namespace \&lt;br /&gt;
-f keycloak-values.yaml \&lt;br /&gt;
--version &amp;quot;${keycloakVersion}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Allez sur Keycloak :&lt;br /&gt;
  https://auth-lab.&amp;lt;your-domain&amp;gt;/auth/ (keycloak:&amp;lt;your-password&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
* Configurez :&lt;br /&gt;
 #https://docs.onyxia.sh/admin-doc/readme/user-authentication (partie : Configuring Keycloak)&lt;br /&gt;
 (Ne pas configurer l'étape 3. In Authentication (on the left panel) -&amp;gt; Tab Required Actions enable and set as default action Therms and Conditions.)&lt;br /&gt;
* Executez :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if [ -z &amp;quot;$appName&amp;quot; ] || [ -z &amp;quot;$domainRoot&amp;quot; ] || [ -z &amp;quot;$appVersion&amp;quot; ] ;then&lt;br /&gt;
  echo nok&lt;br /&gt;
  break&lt;br /&gt;
fi&lt;br /&gt;
export DOMAIN=${domainRoot}&lt;br /&gt;
cat &amp;lt;&amp;lt;EOT &amp;gt;${appName}-values.yaml&lt;br /&gt;
ingress:&lt;br /&gt;
  enabled: true&lt;br /&gt;
  hosts:&lt;br /&gt;
    - host: &amp;quot;${appName}.${domainRoot}&amp;quot;&lt;br /&gt;
  annotations:&lt;br /&gt;
    cert-manager.io/cluster-issuer: letsencrypt-prod&lt;br /&gt;
  tls:&lt;br /&gt;
    - secretName: ${appName}.${domainRoot}-tls&lt;br /&gt;
      hosts:&lt;br /&gt;
        - &amp;quot;${appName}.${domainRoot}&amp;quot;&lt;br /&gt;
api:&lt;br /&gt;
  startupProbe:&lt;br /&gt;
    enabled: true&lt;br /&gt;
    periodSeconds: 60&lt;br /&gt;
  serviceAccount:&lt;br /&gt;
    create: true&lt;br /&gt;
    clusterAdmin: true&lt;br /&gt;
  env:&lt;br /&gt;
    authentication.mode: &amp;quot;openidconnect&amp;quot;&lt;br /&gt;
    oidc.issuer-uri: &amp;quot;https://auth-lab.$DOMAIN/auth/realms/datalab&amp;quot;&lt;br /&gt;
    oidc.clientID: &amp;quot;onyxia&amp;quot;&lt;br /&gt;
  catalogs:&lt;br /&gt;
    [&lt;br /&gt;
    ]&lt;br /&gt;
  regions: [&lt;br /&gt;
      {&lt;br /&gt;
        id: &amp;quot;default&amp;quot;,&lt;br /&gt;
        name: &amp;quot;default&amp;quot;,&lt;br /&gt;
        location: {lat: 48.864716, longitude: 2.349014, name: &amp;quot;Paris&amp;quot; },&lt;br /&gt;
        description: &amp;quot;Default&amp;quot;,&lt;br /&gt;
        services: {&lt;br /&gt;
          quotas: {&lt;br /&gt;
            enabled: false,&lt;br /&gt;
            userEnabled: false,&lt;br /&gt;
            groupEnabled: false,&lt;br /&gt;
            allowUserModification: false,&lt;br /&gt;
            default: {&lt;br /&gt;
              &amp;quot;count/pods&amp;quot;: 100,&lt;br /&gt;
              &amp;quot;requests.memory&amp;quot;: 32,&lt;br /&gt;
              &amp;quot;requests.cpu&amp;quot;: 8,&lt;br /&gt;
              &amp;quot;limits.memory&amp;quot;: 32,&lt;br /&gt;
              &amp;quot;limits.cpu&amp;quot;: 8,&lt;br /&gt;
              &amp;quot;requests.storage&amp;quot;: &amp;quot;500Gi&amp;quot;&lt;br /&gt;
              }&lt;br /&gt;
          },&lt;br /&gt;
          type: &amp;quot;KUBERNETES&amp;quot;,&lt;br /&gt;
          singleNamespace: false,&lt;br /&gt;
          authenticationMode: &amp;quot;serviceAccount&amp;quot;,&lt;br /&gt;
          expose: {&lt;br /&gt;
            domain: &amp;quot;$DOMAIN&amp;quot;,&lt;br /&gt;
            route: false,&lt;br /&gt;
            ingress: true&lt;br /&gt;
          },&lt;br /&gt;
          defaultConfiguration: {&lt;br /&gt;
             ipprotection: false,&lt;br /&gt;
             sliders: {&lt;br /&gt;
               cpu: {&lt;br /&gt;
                  sliderUnit: &amp;quot;m&amp;quot;,&lt;br /&gt;
                  sliderMax: 8000,&lt;br /&gt;
                  sliderStep: 100,&lt;br /&gt;
                  sliderMin: 100&lt;br /&gt;
                },&lt;br /&gt;
               memory: {&lt;br /&gt;
                  sliderMax: 16,&lt;br /&gt;
                  sliderMin: 1,&lt;br /&gt;
                  sliderUnit: &amp;quot;Gi&amp;quot;,&lt;br /&gt;
                  sliderStep: 1&lt;br /&gt;
             },&lt;br /&gt;
               disk: {&lt;br /&gt;
                 sliderMin: 1,&lt;br /&gt;
                 sliderMax: 200,&lt;br /&gt;
                 sliderUnit: &amp;quot;Gi&amp;quot;,&lt;br /&gt;
                 sliderStep: 1&lt;br /&gt;
              }&lt;br /&gt;
            },&lt;br /&gt;
            resources: {&lt;br /&gt;
              cpuLimit: 2000m,&lt;br /&gt;
              memoryLimit: 4Gi,&lt;br /&gt;
              disk: 5Gi&lt;br /&gt;
            }&lt;br /&gt;
          },&lt;br /&gt;
        },&lt;br /&gt;
        data: {&lt;br /&gt;
           S3: {&lt;br /&gt;
            URL: &amp;quot;${s3Url}&amp;quot;,&lt;br /&gt;
            pathStyleAccess: true,&lt;br /&gt;
            workingDirectory: {&lt;br /&gt;
              bucketMode: &amp;quot;multi&amp;quot;,&lt;br /&gt;
              bucketNamePrefix: &amp;quot;&amp;quot;,&lt;br /&gt;
              bucketNamePrefixGroup: &amp;quot;project-&amp;quot;&lt;br /&gt;
           }&lt;br /&gt;
         }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
    ]&lt;br /&gt;
  extraVolumes:&lt;br /&gt;
  - name: config&lt;br /&gt;
    emptyDir: {}&lt;br /&gt;
  - name: cache&lt;br /&gt;
    emptyDir: {}&lt;br /&gt;
  extraVolumeMounts:&lt;br /&gt;
  - mountPath: /.config/&lt;br /&gt;
    name: config&lt;br /&gt;
  - mountPath: /.cache/&lt;br /&gt;
    name: cache&lt;br /&gt;
&lt;br /&gt;
web:&lt;br /&gt;
  env:&lt;br /&gt;
    FONT: |&lt;br /&gt;
      {&lt;br /&gt;
        fontFamily: &amp;quot;Marianne&amp;quot;,&lt;br /&gt;
        dirUrl: &amp;quot;%PUBLIC_URL%/fonts/Marianne&amp;quot;,&lt;br /&gt;
        &amp;quot;400&amp;quot;: &amp;quot;Marianne-Regular.woff2&amp;quot;,&lt;br /&gt;
        &amp;quot;400-italic&amp;quot;: &amp;quot;Marianne-Regular_Italic.woff2&amp;quot;,&lt;br /&gt;
        &amp;quot;500&amp;quot;: &amp;quot;Marianne-Medium.woff2&amp;quot;,&lt;br /&gt;
        &amp;quot;700&amp;quot;: &amp;quot;Marianne-Bold.woff2&amp;quot;,&lt;br /&gt;
        &amp;quot;700-italic&amp;quot;: &amp;quot;Marianne-Bold_Italic.woff2&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    PALETTE_OVERRIDE: |&lt;br /&gt;
      {&lt;br /&gt;
        focus: {&lt;br /&gt;
          main: &amp;quot;#000091&amp;quot;,&lt;br /&gt;
          light: &amp;quot;#9A9AFF&amp;quot;,&lt;br /&gt;
          light2: &amp;quot;#E5E5F4&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        dark: {&lt;br /&gt;
          main: &amp;quot;#2A2A2A&amp;quot;,&lt;br /&gt;
          light: &amp;quot;#383838&amp;quot;,&lt;br /&gt;
          greyVariant1: &amp;quot;#161616&amp;quot;,&lt;br /&gt;
          greyVariant2: &amp;quot;#9C9C9C&amp;quot;,&lt;br /&gt;
          greyVariant3: &amp;quot;#CECECE&amp;quot;,&lt;br /&gt;
          greyVariant4: &amp;quot;#E5E5E5&amp;quot;&lt;br /&gt;
        },&lt;br /&gt;
        light: {&lt;br /&gt;
          main: &amp;quot;#F1F0EB&amp;quot;,&lt;br /&gt;
          light: &amp;quot;#FDFDFC&amp;quot;,&lt;br /&gt;
          greyVariant1: &amp;quot;#E6E6E6&amp;quot;,&lt;br /&gt;
          greyVariant2: &amp;quot;#C9C9C9&amp;quot;,&lt;br /&gt;
          greyVariant3: &amp;quot;#9E9E9E&amp;quot;,&lt;br /&gt;
          greyVariant4: &amp;quot;#747474&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    HOMEPAGE_HERO_TEXT_AUTHENTICATED: &amp;quot;Bonjour %USER_FIRSTNAME% !&amp;quot;&lt;br /&gt;
    HOMEPAGE_CARDS: &amp;quot;[]&amp;quot;&lt;br /&gt;
    SOCIAL_MEDIA_IMAGE: &amp;quot;%PUBLIC_URL%/preview-france.png&amp;quot;&lt;br /&gt;
    HEADER_TEXT_BOLD: &amp;quot;Fabrique Numérique&amp;quot;&lt;br /&gt;
    DISABLE_HOMEPAGE: false&lt;br /&gt;
    HOMEPAGE_MAIN_ASSET: false&lt;br /&gt;
    HEADER_TEXT_FOCUS: &amp;quot;DataLab&amp;quot;&lt;br /&gt;
    HEADER_MAIN_ASSET: &amp;quot;false&amp;quot;&lt;br /&gt;
  extraVolumes:&lt;br /&gt;
  - name: nginx&lt;br /&gt;
    emptyDir: {}&lt;br /&gt;
  - name: index&lt;br /&gt;
    emptyDir: {}&lt;br /&gt;
EOT&lt;br /&gt;
helm upgrade --install ${appName} onyxia/onyxia -n ${appName} --create-namespace \&lt;br /&gt;
--version &amp;quot;${appVersion}&amp;quot; \&lt;br /&gt;
-f ${appName}-values.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tcepo</name></author>
	</entry>
</feed>