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

Use chrome containers instead of chrome build repo. #2014

Merged

Conversation

Hyperkid123
Copy link
Contributor

Jira: https://issues.redhat.com/browse/RHCLOUD-33077

Changes

  • pull Chrome UI from Quay instead of the obsolete build repository
  • run Chrome server via docker/podman
  • source webpack index.html from the Chome UI container
  • add fallback variables to use legacy Chrome assets

A version bump of the proxy dependency has to follow asap.

@Hyperkid123 Hyperkid123 requested a review from a team June 3, 2024 12:57
}

function copyIndex(path: string, isPreview = false) {
const copyCommand = `docker cp fec-chrome-local:/opt/app-root/src/build/${isPreview ? 'preview' : 'stable'}/index.html ${path}`;
Copy link
Member

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(

Copy link
Contributor Author

@Hyperkid123 Hyperkid123 Jun 5, 2024

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',
Copy link
Contributor

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.

Copy link
Contributor Author

@Hyperkid123 Hyperkid123 Jun 5, 2024

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.

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.

Copy link
Contributor Author

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.

Copy link

@eliranmal eliranmal Jun 10, 2024

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?

Copy link
Contributor Author

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.

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',
Copy link
Contributor

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.

Copy link
Contributor Author

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}`,
Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor Author

@Hyperkid123 Hyperkid123 Jun 5, 2024

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.

Copy link
Member

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.

Copy link
Contributor

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.

Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor Author

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}`, {
Copy link
Contributor

Choose a reason for hiding this comment

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

Hardcoded repo.

Copy link
Contributor Author

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}`;
Copy link
Contributor

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.

Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor Author

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.

Copy link
Contributor

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.

@@ -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}`,
Copy link
Member

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.

Copy link
Contributor Author

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}`],
Copy link
Member

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) {
Copy link
Contributor

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)

Copy link
Contributor

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 :)

Copy link
Member

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.

Copy link
Contributor Author

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);
Copy link
Contributor

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?

Copy link
Contributor Author

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.

@Andrewgdewar
Copy link

Andrewgdewar commented Jun 5, 2024

Have these changes been tested on mac yet?

@Hyperkid123
Copy link
Contributor Author

@Andrewgdewar no I am waiting for some of my colleagues to do so.

@bastilian
Copy link
Member

bastilian commented Jun 5, 2024

@Hyperkid123 @Andrewgdewar Re Mac: I can give it a shot, unless someone else is already on it.

@florkbr
Copy link
Contributor

florkbr commented Jun 5, 2024

I'm trying it now on my Mac

@florkbr
Copy link
Contributor

florkbr commented Jun 5, 2024

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>

@Hyperkid123
Copy link
Contributor Author

@vkrizan @bastilian @eliranmal I think I addressed the comments. Anything else you can think of before we go ahead and release the change?

@Hyperkid123 Hyperkid123 added the release minor Once merged it will trigger minor release label Jul 1, 2024
@Hyperkid123 Hyperkid123 merged commit 3de412b into RedHatInsights:master Jul 2, 2024
2 checks passed
@Hyperkid123 Hyperkid123 deleted the use-container-for-chrome branch July 2, 2024 07:02
@nacho-bot
Copy link
Collaborator

                      :soon::shipit::octocat:
     :rose:Shipit Squirrel has this release minor surrounded, be ready for a new version:sunflower:

@nacho-bot
Copy link
Collaborator

     🌱 🌸 🌷 🌻 🌟 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🚀

@nacho-bot
Copy link
Collaborator

     🌱 🌸 🌷 🌻 🌟 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🚀

@nacho-bot nacho-bot added the released Pr has been released label Jul 2, 2024
florkbr added a commit to RedHatInsights/cypress-e2e-image that referenced this pull request Aug 8, 2024
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
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release minor Once merged it will trigger minor release released Pr has been released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants