devfile / api

Kube-native API for cloud development workspaces specification
Apache License 2.0
257 stars 61 forks source link

Adopting devfiles for registry development setups #1069

Open michael-valdron opened 1 year ago

michael-valdron commented 1 year ago

/kind user-story

Which area this user story is related to?

/area registry /area registry-viewer /area landing-page

User Story

As a developer working on devfile registry services there is a need to optimize the development process, luckily the development tools that use devfiles can provide this benefit. I want to have a devfile to define the development setup for testing, debugging and deploying devfile registry development projects, so that these essential workflows can be performed in a efficient manner.

In addition, adopting the spec which these services being developed supports allows those of us contributing to the devfile spec to make improvements and provide feedback to consumers of the spec (the developer tools) in a efficient manner.

Acceptance Criteria

Devfiles should be created under these repositories:

michael-valdron commented 1 year ago

Completion blocked by redhat-developer/odo#5694 due to requirements for the container build processes.

michael-valdron commented 1 year ago

Timeline updated to continue work after odo v3.9.0 milestone is met, April 6, 2023. Currently, devfiles for both devfile-web and registry-support have been setup with the build process and development deployments defined as intended.

This issue should be added to the next sprint to account for the target date.

michael-valdron commented 1 year ago

Timeline updated to continue work after odo v3.9.0 milestone is met, April 6, 2023. Currently, devfiles for both devfile-web and registry-support have been setup with the build process and development deployments defined as intended.

Release is out, continuing work on this issue.

michael-valdron commented 1 year ago

I am running into an issue with the image component when building locally. With the current devfile-web devfile, I get the following error:

 •  Building image locally  ...
Error: accepts at most 1 arg(s), received 2
 ✗  Building image locally [31ms]
Cleaning resources, please wait
 ✗  error running podman command: exit status 125

But if I remove the args from the image component it runs without this error.

Opened discussion about in a thread on the odo slack channel: https://kubernetes.slack.com/archives/C01D6L2NUAG/p1681247236411709?thread_ts=1679082897.132979&cid=C01D6L2NUAG

michael-valdron commented 1 year ago

I am running into an issue with the image component when building locally. With the current devfile-web devfile, I get the following error:

 •  Building image locally  ...
Error: accepts at most 1 arg(s), received 2
 ✗  Building image locally [31ms]
Cleaning resources, please wait
 ✗  error running podman command: exit status 125

But if I remove the args from the image component it runs without this error.

Opened discussion about in a thread on the odo slack channel: https://kubernetes.slack.com/archives/C01D6L2NUAG/p1681247236411709?thread_ts=1679082897.132979&cid=C01D6L2NUAG

Updating target date to end of sprint to provide more time for investigating this issue.

michael-valdron commented 1 year ago

I am running into an issue with the image component when building locally. With the current devfile-web devfile, I get the following error:

 •  Building image locally  ...
Error: accepts at most 1 arg(s), received 2
 ✗  Building image locally [31ms]
Cleaning resources, please wait
 ✗  error running podman command: exit status 125

But if I remove the args from the image component it runs without this error. Opened discussion about in a thread on the odo slack channel: https://kubernetes.slack.com/archives/C01D6L2NUAG/p1681247236411709?thread_ts=1679082897.132979&cid=C01D6L2NUAG

Updating target date to end of sprint to provide more time for investigating this issue.

Explicitly adding --build-arg before the build arg assignment fixes this error. Now running into an error during a build step:

error: cannot update repo 'rhel-8-for-x86_64-appstream-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried; Last error: Curl error (6): Couldn't resolve host name for https://sat6csbcap01.sate-005.prod.us-east-1.aws.redhat.com/pulp/content//CSB/lce-production-rhel-csb-8/cv-rhel-8-csb/content/dist/rhel8/8/x86_64/appstream/os/repodata/repomd.xml [Could not resolve host: sat6csbcap01.sate-005.prod.us-east-1.aws.redhat.com]
Error: error building at STEP "RUN microdnf install shadow-utils -y": error while running runtime: exit status 1
 ✗  Building image locally [5m]
Cleaning resources, please wait
 ✗  error running podman command: exit status 1
michael-valdron commented 1 year ago

I am running into an issue with the image component when building locally. With the current devfile-web devfile, I get the following error:

 •  Building image locally  ...
Error: accepts at most 1 arg(s), received 2
 ✗  Building image locally [31ms]
Cleaning resources, please wait
 ✗  error running podman command: exit status 125

But if I remove the args from the image component it runs without this error. Opened discussion about in a thread on the odo slack channel: https://kubernetes.slack.com/archives/C01D6L2NUAG/p1681247236411709?thread_ts=1679082897.132979&cid=C01D6L2NUAG

Updating target date to end of sprint to provide more time for investigating this issue.

Explicitly adding --build-arg before the build arg assignment fixes this error. Now running into an error during a build step:

error: cannot update repo 'rhel-8-for-x86_64-appstream-rpms': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried; Last error: Curl error (6): Couldn't resolve host name for https://sat6csbcap01.sate-005.prod.us-east-1.aws.redhat.com/pulp/content//CSB/lce-production-rhel-csb-8/cv-rhel-8-csb/content/dist/rhel8/8/x86_64/appstream/os/repodata/repomd.xml [Could not resolve host: sat6csbcap01.sate-005.prod.us-east-1.aws.redhat.com]
Error: error building at STEP "RUN microdnf install shadow-utils -y": error while running runtime: exit status 1
 ✗  Building image locally [5m]
Cleaning resources, please wait
 ✗  error running podman command: exit status 1

Seems that this error was only a one time problem with the package repository and is no longer happening.

michael-valdron commented 1 year ago

For the devfile-web repository, I have decided to setup the devfile to only build and run the project from within the runtime container using node:16-alpine, there is a seperate image component used for building and deploying the container image for the target project. The devfile now look like this: https://github.com/michael-valdron/devfile-web/blob/e8c734976fa103751e8db01555038c451dc79c5f/.devfile.yaml

The devfile registry devfile will still use image components with autoBuild to build the images used by the runtime containers.

The PR for adding a devfile to devfile-web is now ready for review: devfile/devfile-web#78

michael-valdron commented 1 year ago

devfile/devfile-web#78 has been merged and devfile for devfile-web is now available for use.

michael-valdron commented 1 year ago

devfile/devfile-web#78 has been merged and devfile for devfile-web is now available for use.

Additional time on the second task of this issue is needed due to set backs involving deployment errors when the container components are attempting to execute the entrypoint commands. This issue will now be targeted for the upcoming sprint.

michael-valdron commented 1 year ago

Running into issues with the OCI registry component, it needs to be provided with a config.yml. I was attempt to mount source directory to this component as it is not needed for the devfile registry component due to building the images on start.

There is an error that occurs at the start which prevents me from syncing a config.yml to the OCI registry.

◓  Syncing files into the containerE0427 17:48:51.643832  114216 v2.go:104] write tcp 192.168.39.1:42458->192.168.39.33:8443: write: connection reset by peer
 ✗  Command 'tar xf - -C /projects --no-same-owner' in container failed.

 ✗  stdout: OCI runtime exec failed: exec failed: unable to start container process: exec: "tar": executable file not found in $PATH: unknown

 ✗  stderr: 

 ✗  err: error while streaming command: command terminated with exit code 126

 ✗  Syncing files into the container [3s]
Error occurred on Push - watch command was unable to push component: failed to sync to component with name devfile-registry: failed to sync to component with name devfile-registry: unable push files to pod: error while streaming command: command terminated with exit code 126
michael-valdron commented 1 year ago

Progress on this issue has been stalled due to higher priority issues, setting back to "To do" and resetting target date.

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 90 days with no activity. Remove stale label or comment or this will be closed in 60 days.

michael-valdron commented 1 year ago

Preserve this issue for later sprint or devtools week Q3/Q4.

michael-valdron commented 9 months ago

Related issue: https://github.com/devfile/api/issues/1200 Related PR for registry-support devfile: https://github.com/devfile/registry/pull/256

github-actions[bot] commented 1 week ago

This issue is stale because it has been open for 90 days with no activity. Remove stale label or comment or this will be closed in 60 days.