-
Notifications
You must be signed in to change notification settings - Fork 102
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
Use chrome containers instead of chrome build repo. #2014
Use chrome containers instead of chrome build repo. #2014
Conversation
48da49f
to
dff81eb
Compare
} | ||
|
||
function copyIndex(path: string, isPreview = false) { | ||
const copyCommand = `docker cp fec-chrome-local:/opt/app-root/src/build/${isPreview ? 'preview' : 'stable'}/index.html ${path}`; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If both podman and docker are supported, should this maybe first check which runtime to use? (Not everyone might have installed the docker compatibility extension(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup I'll fix that. Thanks. There is a check for the executable.
let execBin: ContainerRuntime | undefined = undefined; | ||
|
||
const chromeDeploymentConfig = { | ||
repo: 'git@gitlab.cee.redhat.com:service/app-interface.git', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not a public repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not. And we will fallback to the GH if for some reason it is not available. It is public as long as you are on the company network. Which you need anyway for development.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Hyperkid123, will that affect HCC app developers' experience?
As a dev' on the OCM UI (@ /openshift
), currently I don't have to be connected to company network (i.e. be logged in to VPN) in order to run my local dev-server.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@eliranmal Then you are not proxying chrome and you are pulling requesting assets directly from production CDN. If you are using the shared config (or just the proxy) you are not using production assets, but a dev build from the build repository in GH. So you would in this case fall back to the GitHub latest commit. Which is identical to what you are probably using today.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanx for the elaboration, @Hyperkid123 !
We're just in the process of containerizing our deployment builds, and as a by-produce, might change our pipeline to not use that (intermediate) build repo'.
Would we have to be logged-in to VPN after that change?
Maybe a broader question then; under which scenarios will VPN be required?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want to develop in the stage environment. The production uses VPN by default but the requirement can be disabled in the current setup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
great, thanx!
const chromeDeploymentConfig = { | ||
repo: 'git@gitlab.cee.redhat.com:service/app-interface.git', | ||
deployFile: 'data/services/insights/frontend-base/deploy.yml', | ||
stablePath: 'resourceTemplates[0].targets[4].ref', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Getting a specific target by an index is very rigid.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not used I'll remove it.
fecLogger(LogType.info, 'No existing chrome container found'); | ||
} | ||
const child = spawn( | ||
`${execBin} run -p ${EXPOSED_PORT}:${CONTAINER_PORT} --name fec-chrome-local quay.io/cloudservices/insights-chrome-frontend:${tag}`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why this runs containers from node? Have you considered a simpler approach with podman-compose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are trying to keep the docker/podman dependencies to a bare minimum. We also don't want to change the developer workflow at all. One should still just have to hit the npm run start
and the rest happens behind the scenes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry Martin, but this re-implements what the compose already does the best. Backend dev already utilize podman/docker-compose, so this would not be something new. npm run start
can initiate compose command to keep frontend workflow the same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry Martin, but this re-implements what the compose already does the best.
I see. I was under the impression you were suggesting switching from npm
script to docker/podman compose.
Backend dev already utilize podman/docker-compose, so this would not be something new.
This utility is not for backend devs :) I will defer to my original point. We want to keep the requirements to a minimum. I am fully aware and expect that you will counter my opinion by saying compose (docker or podman) is something standard that every developer should have/know.
But we do not benefit in any way from running compose instead of a simple node. We do not allow any configuration and it is not needed. The only thing we need is a simple static web server. With the exception of a port to run the web server (in case the default is occupied), we do not need or in fact, do not want anyone to change anything. Because there is nothing to change within the frontend containers. There are no dependencies, volumes, extra exposed ports, nothing. We are talking about an asset server, not rest API, or DB, or message bus, that would require a bit more control. If Chrome is supposed to be pointed to a local repository, there is already a way to do so without containers. The only thing that compose would do right now, is to introduce a new requirement to install it. With no benefit to the developer because they can't even configure it.
If we ever need to extend the configuration, I"ll be more than happy to switch to compose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think for now this is good. However, I do think that @vkrizan does have a point. While I think that maybe Podman-compose may be too much and may introduce more complexity than needed, we might want to look into better process management.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My suggestion is to make it simple and maintainable. What may seem simple does not necessarily mean that it would be simple to maintain. (Less is more 🙂)
Since this introduces containers to serve static content, then a convenient method of running bunch of containers would be to use compose. Indeed, it does add a dependency. If we, however, want to keep it simple, we do not need containers to serve static assets (Node can do it). I think that our obstacle is that the static content is provided through container images (instead of archives). To keep this simplish, this can extract the assets from the image and then serve it from a temporary directory. No container runtime is required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To keep this simplish, this can extract the assets from the image and then serve it from a temporary directory. No container runtime is required.
AFAIK you still need the runtime to extract the assets themselves. YOu'd have to start it, extract the assets, stop the container, and start a node server. Don't think that is simpler. If there is a way to extract files from a container/image without using runtime, I am interested in learning.
I'll re-iterate. If we ever move towards serving locally built assets from docker rather than using the webpack dev server, using compose will be the obvious pick. But at this point, I don't see any benefit. If we decide to switch from webpack dev server, rewriting a docker node to compose, will be the least of our problems.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a save
command that gets an image as tar. However, the inners of an image tar are image layers that need to be unpacked.
# extract to current dir
podman save ImagID| tar xf -
This might be a bit clumsy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That still requires the runtime installed though. Why not just run it when you have to download it anyway?
} | ||
|
||
function pullImage(tag: string) { | ||
execSync(`${execBin} pull quay.io/cloudservices/insights-chrome-frontend:${tag}`, { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hardcoded repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes and the server port as well. These need to configurable. I am working on that.
tarTarget: path.resolve(__dirname, 'chrome-deploy/'), | ||
}; | ||
|
||
const checkoutCommand = `git archive --remote=${chromeDeploymentConfig.repo} HEAD ${chromeDeploymentConfig.deployFile} | tar xvf - -C ${chromeDeploymentConfig.tarTarget}`; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this be simplified to pull the respective file from GitLab or directly from GraphQL of AppSRE? Ideally this could be done the same way as bonfire is pulling the configs to have it consistent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it simpler to use the AppSRE API? I am not sure. We just need one file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The key here is consistency and maintainability. Although, I see that it might seem like an overkill to use an API. The API can bring the consistency, as that is what AppSRE and bonfire uses.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vkrizan Do we need some API keys or other creds to access the AppSRE API? If not let's switch then.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it should be opened when logged in on VPN. Search for "Querying the App-interface" on app-interface repo's README.
dff81eb
to
ec702ca
Compare
@@ -40,6 +40,9 @@ const { plugins: externalPlugins = [], interceptChromeConfig, routes, ...externa | |||
|
|||
const internalProxyRoutes: { [endpoint: string]: ProxyConfigArrayItem } = { | |||
...routes, | |||
'/apps/chrome': { | |||
target: `http://127.0.0.1:${process.env.FEC_CHROME_PORT}`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be good to have this variable and use the stage.foo.redhat.com
etc. hostnames instead as a default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. I'll add it.
pullImage(tag); | ||
startServer(tag, serverPort); | ||
await waitOn({ | ||
resources: [`http://127.0.0.1:${serverPort}`], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above with the routes.
|
||
function checkContainerRuntime(): ContainerRuntime { | ||
try { | ||
if (execSync('which podman').toString().trim().length > 0) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not blocking - but in the future it would be nice to make this configurable (versus trying podman first, then docker)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW Docker seemed considerably faster to me on Mac so I'd prefer this sooner than later :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@florkbr We should be preferring podman
. and TBH, I wouldn't even add docker
support.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, we should be favoriting podman.
throw new Error('Unable to find chrome prod deployment configuration.'); | ||
} | ||
|
||
return chromeProd.ref.substring(0, 7); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Hyperkid123 curious - if we have the entire commit hash - why would we only use the short commit?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is how the images are tagged on quay. They use only the shorthand, not the entire commit hash.
ec702ca
to
10f4e1f
Compare
Have these changes been tested on mac yet? |
@Andrewgdewar no I am waiting for some of my colleagues to do so. |
@Hyperkid123 @Andrewgdewar Re Mac: I can give it a shot, unless someone else is already on it. |
I'm trying it now on my Mac |
Everything appears functional on my Mac running Sonoma 14.5 (23F79) and podman version 5.0.2/Docker version 20.10.12, build e91ed57. FWIW I'm on an older Intel mac - but that should be unrelated. I pulled these changes into the frontend-starter-app node_modules. Podman installed but machine not running➜ frontend-starter-app git:(master) ✗ npm run start
> frontend-starter-app@1.2.0 start
> HOT=true fec dev
? Which platform environment you want to use? stage
? Which Chrome environment you want to use? beta
[fec] Warn: The _unstableHotReload option in fec.config.js is deprecated. Use hotReload config instead.
[fec] Unsupported @patternfly packages version. Dynamic modules require version ^5.0.0. Got undefined.
[fec] Warn: No exposed modules provided! Falling back to ./src/AppEntry as "./RootApp"
[fec] Debug: ~~~Using variables~~~
[fec] Debug: Root folder: /Volumes/Development/git/RedHatInsights/frontend-starter-app
[fec] Debug: Current branch: master
[fec] Debug: Beta branches: master,qa-beta,ci-beta,prod-beta,main,devel,stage-beta
[fec] Debug: Using deployments: beta/apps
[fec] Debug: Public path: /beta/apps/frontend-starter-app/
[fec] Debug: App entry: /Volumes/Development/git/RedHatInsights/frontend-starter-app/src/entry.ts
[fec] Debug: Use proxy: true
[fec] Warn: The _unstableHotReload option in shared webpack config is deprecated. Use hotReload config instead.
[fec] Warn: The _unstableHotReload option in shared webpack plugins config is deprecated. Use hotReload config instead.
[fec] Info: Starting chrome server...
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman socket: failed to connect: dial tcp 127.0.0.1:57395: connect: connection refused
[fec] Error: Chrome server stopped!
[fec] Error: Error: Command failed: podman pull quay.io/cloudservices/insights-chrome-frontend:ff2f852
at checkExecSyncError (node:child_process:890:11)
at execSync (node:child_process:962:15)
at pullImage (/Volumes/Development/git/RedHatInsights/frontend-components/packages/config/bin/serve-chrome.js:136:34)
at /Volumes/Development/git/RedHatInsights/frontend-components/packages/config/bin/serve-chrome.js:202:21
at step (/Volumes/Development/git/RedHatInsights/frontend-components/packages/config/bin/serve-chrome.js:33:23)
at Object.next (/Volumes/Development/git/RedHatInsights/frontend-components/packages/config/bin/serve-chrome.js:14:53)
at fulfilled (/Volumes/Development/git/RedHatInsights/frontend-components/packages/config/bin/serve-chrome.js:5:58)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
status: 125,
signal: null,
output: [ null, null, null ],
pid: 18404,
stdout: null,
stderr: null
} Podman installed and machine running➜ frontend-starter-app git:(master) ✗ npm run start
> frontend-starter-app@1.2.0 start
> HOT=true fec dev
? Which platform environment you want to use? stage
? Which Chrome environment you want to use? beta
[fec] Warn: The _unstableHotReload option in fec.config.js is deprecated. Use hotReload config instead.
[fec] Unsupported @patternfly packages version. Dynamic modules require version ^5.0.0. Got undefined.
[fec] Warn: No exposed modules provided! Falling back to ./src/AppEntry as "./RootApp"
[fec] Debug: ~~~Using variables~~~
[fec] Debug: Root folder: /Volumes/Development/git/RedHatInsights/frontend-starter-app
[fec] Debug: Current branch: master
[fec] Debug: Beta branches: master,qa-beta,ci-beta,prod-beta,main,devel,stage-beta
[fec] Debug: Using deployments: beta/apps
[fec] Debug: Public path: /beta/apps/frontend-starter-app/
[fec] Debug: App entry: /Volumes/Development/git/RedHatInsights/frontend-starter-app/src/entry.ts
[fec] Debug: Use proxy: true
[fec] Warn: The _unstableHotReload option in shared webpack config is deprecated. Use hotReload config instead.
[fec] Warn: The _unstableHotReload option in shared webpack plugins config is deprecated. Use hotReload config instead.
[fec] Info: Starting chrome server...
Trying to pull quay.io/cloudservices/insights-chrome-frontend:ff2f852...
Getting image source signatures
Copying blob sha256:b364992f70d12fdc8ccea2acc0c9175fe2a589c0c18cb035ace12dc1ae68dde2
Copying blob sha256:954491dccc0baad4abe15b252d91feef8a0ec78ac22f686b7b5233869c27fb7a
Copying blob sha256:9360b2e599a64441023a2f767d3aeecd02f8822fc22eabf03e0b8ea27058ab4f
Copying blob sha256:3550ee360766546a0eaca7c96269646f601a714ad8e63684f8ace09c2bbbfd19
Copying blob sha256:9aad5e1ff736d274a529a19c10db3384b1d34ddbfd29070fc03a30a75acc57cd
Copying blob sha256:9e7f600718408f0404538ecb5832c4289b279fd73a07089284ee6f6ba42dccae
Copying blob sha256:037f60bd0f6a4d0d88382a1942dbd9f119e049a10b2290e8c92ed2e57fd201d3
Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
Copying config sha256:59a08fff523f542cde6c6e3b8ef5e94d064e10f60c0878edfc584e91f148f7e6
Writing manifest to image destination
59a08fff523f542cde6c6e3b8ef5e94d064e10f60c0878edfc584e91f148f7e6
fec-chrome-local
fec-chrome-local
[fec] Warn: The _unstableHotReload option in fec.config.js is deprecated. Use hotReload config instead.
[fec] Unsupported @patternfly packages version. Dynamic modules require version ^5.0.0. Got undefined.
[fec] Warn: No exposed modules provided! Falling back to ./src/AppEntry as "./RootApp"
[fec] Debug: ~~~Using variables~~~
[fec] Debug: Root folder: /Volumes/Development/git/RedHatInsights/frontend-starter-app
[fec] Debug: Current branch: master
[fec] Debug: Beta branches: master,qa-beta,ci-beta,prod-beta,main,devel,stage-beta
[fec] Debug: Using deployments: beta/apps
[fec] Debug: Public path: /beta/apps/frontend-starter-app/
[fec] Debug: App entry: /Volumes/Development/git/RedHatInsights/frontend-starter-app/src/entry.ts
[fec] Debug: Use proxy: true
[fec] Warn: The _unstableHotReload option in shared webpack config is deprecated. Use hotReload config instead.
[fec] Warn: The _unstableHotReload option in shared webpack plugins config is deprecated. Use hotReload config instead.
(node:3504) [DEP_WEBPACK_DEV_SERVER_HTTPS] DeprecationWarning: 'https' option is deprecated. Please use the 'server' option.
(Use `node --trace-deprecation ...` to show where the warning was created)
<i> [webpack-dev-server] <truncated_logs>
App should run on:
- https://stage.foo.redhat.com:1337/beta/staging/starter
Static assets are available at:
- https://stage.foo.redhat.com:1337/beta/apps/frontend-starter-app/
assets by path js/ 3.83 MiB
assets by chunk 2.68 MiB (id hint: vendors)
asset js/vendors-node_modules_patternfly_react-core_dist_esm_layouts_Bullseye_Bullseye_js-node_modules-3c34c5.js 1.03 MiB [emitted] (id hint: vendors)
asset js/vendors-node_modules_react-dom_index_js.js 1020 KiB [emitted] (id hint: vendors)
+ 4 assets
+ 9 assets
assets by path css/ 15.3 KiB
asset css/exposed-./RootApp.css 4.68 KiB [emitted] (name: exposed-./RootApp)
asset css/src_bootstrap_tsx-node_modules_redhat-cloud-services_frontend-components-notifications_esm_No-e25a6f.css 4.68 KiB [emitted]
asset css/SamplePage.css 2.52 KiB [emitted] (name: SamplePage)
asset css/OopsPage.css 1.67 KiB [emitted] (name: OopsPage)
asset css/src_Components_SampleComponent_sample-component_tsx.css 930 bytes [emitted]
asset css/NoPermissionsPage.css 864 bytes [emitted] (name: NoPermissionsPage)
asset frontendStarterApp.js 487 KiB [emitted] (name: frontendStarterApp)
asset fed-mods.json 283 bytes [emitted]
Entrypoint main 569 KiB (590 KiB) = js/runtime.js 71.3 KiB js/main.js 497 KiB 2 auxiliary assets
Entrypoint vendors 557 KiB (579 KiB) = js/runtime.js 71.3 KiB js/vendors.js 485 KiB 2 auxiliary assets
Entrypoint frontendStarterApp 558 KiB (68.1 KiB) = js/runtime.js 71.3 KiB frontendStarterApp.js 487 KiB 1 auxiliary asset
cached modules 5.23 MiB (javascript) 168 bytes (share-init) 210 bytes (consume-shared) 2.01 KiB (css/mini-extract) [cached] 3135 modules
runtime modules 50.9 KiB 22 modules
WARNING in fed-mods.json
Plugin has no extensions
WARNING in [entry] [initial]
Detected separate runtime chunk while using non-jsonp library type.
This configuration is not recommended since it may cause issues when reloading plugins at runtime.
Consider updating your webpack configuration to avoid emitting a separate runtime chunk.
webpack 5.88.2 compiled with 2 warnings in 1448 ms
Type-checking in progress...
No errors found.
Rewriting GET /beta/staging/starter to /index.html
proxy /api/chrome-service/v1/static/beta/stage/modules/fed-modules.json
<truncated> Docker➜ frontend-starter-app git:(master) ✗ npm run start
npm run start
> frontend-starter-app@1.2.0 start
> HOT=true fec dev
? Which platform environment you want to use? stage
? Which Chrome environment you want to use? beta
[fec] Warn: The _unstableHotReload option in fec.config.js is deprecated. Use hotReload config instead.
[fec] Unsupported @patternfly packages version. Dynamic modules require version ^5.0.0. Got undefined.
[fec] Warn: No exposed modules provided! Falling back to ./src/AppEntry as "./RootApp"
[fec] Debug: ~~~Using variables~~~
[fec] Debug: Root folder: /Volumes/Development/git/RedHatInsights/frontend-starter-app
[fec] Debug: Current branch: master
[fec] Debug: Beta branches: master,qa-beta,ci-beta,prod-beta,main,devel,stage-beta
[fec] Debug: Using deployments: beta/apps
[fec] Debug: Public path: /beta/apps/frontend-starter-app/
[fec] Debug: App entry: /Volumes/Development/git/RedHatInsights/frontend-starter-app/src/entry.ts
[fec] Debug: Use proxy: true
[fec] Warn: The _unstableHotReload option in shared webpack config is deprecated. Use hotReload config instead.
[fec] Warn: The _unstableHotReload option in shared webpack plugins config is deprecated. Use hotReload config instead.
[fec] Info: Starting chrome server...
ff2f852: Pulling from cloudservices/insights-chrome-frontend
3550ee360766: Pull complete
954491dccc0b: Pull complete
9aad5e1ff736: Pull complete
9360b2e599a6: Pull complete
9e7f60071840: Pull complete
b364992f70d1: Pull complete
037f60bd0f6a: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:5041361cec0465201ae0f8570ed6913233b4186e6cd342fad7bada3f522275e3
Status: Downloaded newer image for quay.io/cloudservices/insights-chrome-frontend:ff2f852
quay.io/cloudservices/insights-chrome-frontend:ff2f852
Error response from daemon: No such container: fec-chrome-local
[fec] Info: No existing chrome container found
[fec] Warn: The _unstableHotReload option in fec.config.js is deprecated. Use hotReload config instead.
[fec] Unsupported @patternfly packages version. Dynamic modules require version ^5.0.0. Got undefined.
[fec] Warn: No exposed modules provided! Falling back to ./src/AppEntry as "./RootApp"
[fec] Debug: ~~~Using variables~~~
[fec] Debug: Root folder: /Volumes/Development/git/RedHatInsights/frontend-starter-app
[fec] Debug: Current branch: master
[fec] Debug: Beta branches: master,qa-beta,ci-beta,prod-beta,main,devel,stage-beta
[fec] Debug: Using deployments: beta/apps
[fec] Debug: Public path: /beta/apps/frontend-starter-app/
[fec] Debug: App entry: /Volumes/Development/git/RedHatInsights/frontend-starter-app/src/entry.ts
[fec] Debug: Use proxy: true
[fec] Warn: The _unstableHotReload option in shared webpack config is deprecated. Use hotReload config instead.
[fec] Warn: The _unstableHotReload option in shared webpack plugins config is deprecated. Use hotReload config instead.
(node:14192) [DEP_WEBPACK_DEV_SERVER_HTTPS] DeprecationWarning: 'https' option is deprecated. Please use the 'server' option.
(Use `node --trace-deprecation ...` to show where the warning was created)
<i> [webpack-dev-server] <truncated_logs>
App should run on:
- https://stage.foo.redhat.com:1337/beta/staging/starter
Static assets are available at:
- https://stage.foo.redhat.com:1337/beta/apps/frontend-starter-app/
assets by path js/ 3.83 MiB
assets by chunk 2.68 MiB (id hint: vendors)
asset js/vendors-node_modules_patternfly_react-core_dist_esm_layouts_Bullseye_Bullseye_js-node_modules-3c34c5.js 1.03 MiB [emitted] (id hint: vendors)
asset js/vendors-node_modules_react-dom_index_js.js 1020 KiB [emitted] (id hint: vendors)
+ 4 assets
+ 9 assets
assets by path css/ 15.3 KiB
asset css/exposed-./RootApp.css 4.68 KiB [emitted] (name: exposed-./RootApp)
asset css/src_bootstrap_tsx-node_modules_redhat-cloud-services_frontend-components-notifications_esm_No-e25a6f.css 4.68 KiB [emitted]
asset css/SamplePage.css 2.52 KiB [emitted] (name: SamplePage)
asset css/OopsPage.css 1.67 KiB [emitted] (name: OopsPage)
asset css/src_Components_SampleComponent_sample-component_tsx.css 930 bytes [emitted]
asset css/NoPermissionsPage.css 864 bytes [emitted] (name: NoPermissionsPage)
asset frontendStarterApp.js 487 KiB [emitted] (name: frontendStarterApp)
asset fed-mods.json 283 bytes [emitted]
Entrypoint main 569 KiB (590 KiB) = js/runtime.js 71.3 KiB js/main.js 497 KiB 2 auxiliary assets
Entrypoint vendors 557 KiB (579 KiB) = js/runtime.js 71.3 KiB js/vendors.js 485 KiB 2 auxiliary assets
Entrypoint frontendStarterApp 558 KiB (68.1 KiB) = js/runtime.js 71.3 KiB frontendStarterApp.js 487 KiB 1 auxiliary asset
cached modules 5.23 MiB (javascript) 168 bytes (share-init) 210 bytes (consume-shared) 2.01 KiB (css/mini-extract) 50.9 KiB (runtime) [cached] 3157 modules
WARNING in fed-mods.json
Plugin has no extensions
WARNING in [entry] [initial]
Detected separate runtime chunk while using non-jsonp library type.
This configuration is not recommended since it may cause issues when reloading plugins at runtime.
Consider updating your webpack configuration to avoid emitting a separate runtime chunk.
webpack 5.88.2 compiled with 2 warnings in 1512 ms
Type-checking in progress...
No errors found.
proxy /api/entitlements/v1/services
Rewriting GET /beta/staging/starter to /index.html
<truncated> |
10f4e1f
to
13ed8e6
Compare
13ed8e6
to
8c59b8a
Compare
@vkrizan @bastilian @eliranmal I think I addressed the comments. Anything else you can think of before we go ahead and release the change? |
:soon::shipit::octocat: |
🌱 🌸 🌷 🌻 🌟 New version of package has been released 🌟 🌻 🌷 🌸 🌱 The release is available on: :package:@redhat-cloud-services/frontend-components-config-utilities/v/3.1.0📦 :boom:This feature is brought to you by probot🚀 |
🌱 🌸 🌷 🌻 🌟 New version of package has been released 🌟 🌻 🌷 🌸 🌱 The release is available on: :package:@redhat-cloud-services/frontend-components-config/v/6.1.0📦 :boom:This feature is brought to you by probot🚀 |
Our Jenkins pipeline is hanging for cypress tests as the `which` command is not present in the docker image. See https://ci.int.devshift.net/job/RedHatInsights-insights-rbac-ui-pr-check/451/consoleFull The dependency on which was added/picked up by: RedHatInsights/frontend-components#2014 ```log 10:58:44 [fec] Info: Starting chrome server... 10:58:44 /bin/sh: line 1: which: command not found 10:58:44 [fec] Error: Chrome server stopped! 10:58:44 [fec] Error: Error: No container runtime found 10:58:44 at checkContainerRuntime (/home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:64:15) 10:58:44 at /home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:198:31 10:58:44 at step (/home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:33:23) 10:58:44 at Object.next (/home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:14:53) 10:58:44 at /home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:8:71 10:58:44 at new Promise (<anonymous>) 10:58:44 at __awaiter (/home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:4:12) 10:58:44 at serveChrome (/home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/serve-chrome.js:189:12) 10:58:44 at /home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/dev-script.js:150:59 10:58:44 at step (/home/tester/workspace/node_modules/@redhat-cloud-services/frontend-components-config/bin/dev-script.js:33:23) 10:58:47 making HTTP(S) head request to url:https://127.0.0.1:1337/webpack-dev-server ... 10:58:47 (node:73) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification. 10:58:47 (Use `node --trace-warnings ...` to show where the warning was created) 10:58:47 HTTP(S) error for https://127.0.0.1:1337/webpack-dev-server Error: connect ECONNREFUSED 127.0.0.1:1337 ```
Jira: https://issues.redhat.com/browse/RHCLOUD-33077
Changes
index.html
from the Chome UI containerA version bump of the proxy dependency has to follow asap.