@@ -13,13 +13,22 @@ const promMid = require('express-prometheus-middleware');
1313const Prometheus = require ( 'prom-client' ) ;
1414const querystring = require ( 'querystring' ) ;
1515const flattenDeep = require ( 'lodash.flattendeep' ) ;
16+ const proxy = require ( 'express-http-proxy' ) ;
1617const { sync, closeConnection, getUserWalkthroughs, setUserWalkthroughs, validUrl } = require ( './model' ) ;
1718
19+ const OPENSHIFT_PROXY_PATH = '/proxy/openshift' ;
20+
1821const app = express ( ) ;
1922
2023const adoc = asciidoctor ( ) ;
2124
2225app . use ( bodyParser . json ( ) ) ;
26+ app . use ( OPENSHIFT_PROXY_PATH , proxy ( `https://${ process . env . OPENSHIFT_API } ` , {
27+ proxyReqOptDecorator : function ( proxyReqOpts , _ ) {
28+ proxyReqOpts . rejectUnauthorized = false
29+ return proxyReqOpts ;
30+ }
31+ } ) ) ;
2332
2433// prometheus metrics endpoint
2534app . use (
@@ -30,6 +39,7 @@ app.use(
3039 } )
3140) ;
3241
42+ const openshiftVersion = process . env . OPENSHIFT_VERSION || '3' ;
3343const port = process . env . PORT || 5001 ;
3444const configPath = process . env . SERVER_EXTRA_CONFIG_FILE || '/etc/webapp/customServerConfig.json' ;
3545
@@ -487,10 +497,15 @@ function getWalkthroughHeader(basePath) {
487497 } ) ;
488498}
489499
500+ function isOpenShift4 ( ) {
501+ return `${ process . env . OPENSHIFT_VERSION } ` === '4' ;
502+ }
503+
490504function getMockConfigData ( ) {
491505 return `window.OPENSHIFT_CONFIG = {
492506 masterUri: 'mock-openshift-console-url',
493507 integreatlyVersion: '${ process . env . INTEGREATLY_VERSION || '' } ',
508+ openshiftVersion: ${ openshiftVersion } ,
494509 threescaleWildcardDomain: '${ process . env . THREESCALE_WILDCARD_DOMAIN || '' } ',
495510 optionalWatchServices: [],
496511 optionalProvisionServices: [],
@@ -609,22 +624,26 @@ function getConfigData(req) {
609624 process . env . OPENSHIFT_OAUTH_HOST = process . env . OPENSHIFT_HOST ;
610625 }
611626
627+ const masterUri = isOpenShift4 ( ) ? OPENSHIFT_PROXY_PATH : `https://${ process . env . OPENSHIFT_HOST } ` ;
628+ const wssMasterUri = isOpenShift4 ( ) ? OPENSHIFT_PROXY_PATH : `wss://${ process . env . OPENSHIFT_HOST } ` ;
629+
612630 return `window.OPENSHIFT_CONFIG = {
613631 clientId: '${ process . env . OPENSHIFT_OAUTHCLIENT_ID } ',
614632 accessTokenUri: 'https://${ process . env . OPENSHIFT_OAUTH_HOST } /oauth/token',
615633 authorizationUri: 'https://${ process . env . OPENSHIFT_OAUTH_HOST } /oauth/authorize',
616634 redirectUri: '${ redirectHost } /oauth/callback',
617635 scopes: ['user:full'],
618- masterUri: 'https:// ${ process . env . OPENSHIFT_HOST } ',
619- wssMasterUri: 'wss:// ${ process . env . OPENSHIFT_HOST } ',
636+ masterUri: '${ masterUri } ',
637+ wssMasterUri: '${ wssMasterUri } ',
620638 ssoLogoutUri: 'https://${
621639 process . env . SSO_ROUTE
622640 } /auth/realms/openshift/protocol/openid-connect/logout?redirect_uri=${ logoutRedirectUri } ',
623641 threescaleWildcardDomain: '${ process . env . THREESCALE_WILDCARD_DOMAIN || '' } ',
624642 integreatlyVersion: '${ process . env . INTEGREATLY_VERSION || '' } ',
625643 clusterType: '${ process . env . CLUSTER_TYPE || '' } ',
626644 optionalWatchServices: ${ JSON . stringify ( arrayFromString ( process . env . OPTIONAL_WATCH_SERVICES || '' , ',' ) ) } ,
627- optionalProvisionServices: ${ JSON . stringify ( arrayFromString ( process . env . OPTIONAL_PROVISION_SERVICES || '' , ',' ) ) }
645+ optionalProvisionServices: ${ JSON . stringify ( arrayFromString ( process . env . OPTIONAL_PROVISION_SERVICES || '' , ',' ) ) } ,
646+ openshiftVersion: ${ openshiftVersion }
628647 };` ;
629648}
630649
0 commit comments