원클릭으로
devfile
Use when creating, modifying, or reviewing devfile/devfile.yaml files or devworkspace configurations (devfile.io v2.3.0)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when creating, modifying, or reviewing devfile/devfile.yaml files or devworkspace configurations (devfile.io v2.3.0)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | devfile |
| description | Use when creating, modifying, or reviewing devfile/devfile.yaml files or devworkspace configurations (devfile.io v2.3.0) |
A devfile is a YAML file defining containerized development environments — components, commands, events, and deployment flows. This skill covers the devfile v2.3.0 schema.
Schema reference: Read devfile-schema-reference.md when you need exact property names, types, defaults, or constraints.
Output format: Always output the full devfile YAML in a fenced code block. Add a brief explanation only for non-obvious choices.
When starting from scratch, use this as the base:
schemaVersion: 2.3.0
metadata:
name: devfile
components:
- name: tools
container:
image: quay.io/devfile/universal-developer-image:latest
When asked about a devfile for a specific programming language or framework:
WebFetch on https://registry.devfile.io/index — returns a JSON array of all stacks with name, language, projectType, tags, and description fields.WebFetch on https://registry.devfile.io/devfiles/{name} — returns the raw devfile YAML.https://registry.devfile.io/devfiles/{name} as the source.If no registry match exists, build the devfile from scratch using the default template and appropriate container image.
mountSources: true by default. Omit it only when the container uses dedicatedPod: true.quay.io/devfile/universal-developer-image), include command: ['sleep', 'infinity'] to keep the container alive for exec commands.When adding a volume mount to a container, always create a matching volume component with the same name and size.
For ephemeral volumes, add ephemeral: true.
When adding an image component, add buildContext: ..
Syntax: {{variable-name}}
Cannot substitute in:
schemaVersion, metadata, parent sourcecommand.id, component.name, endpoint.name, project.nameexec.component, volumeMounts.namegroup.kind, endpoint.exposureUndefined variables: Non-blocking warning (devfile still processed).
These cannot be overridden via container env:
$PROJECTS_ROOT — path where project sources are mounted (default /projects)$PROJECT_SOURCE — path to the default project source ($PROJECTS_ROOT/<project-name>)# Top-level pod overrides
attributes:
pod-overrides:
spec:
__KUBERNETES_POD_SPEC_FIELDS_HERE__
# Component-level overrides
components:
- name: tools
attributes:
container-overrides:
__KUBERNETES_CONTAINER_FIELDS_HERE__
pod-overrides:
spec:
__KUBERNETES_POD_SPEC_FIELDS_HERE__
Merge strategy: devfile-level pod-overrides are applied first, then component-level, using Strategic Merge Patch.
| Override Type | Restricted Properties |
|---|---|
container-overrides | image, name, ports, env, volumeMounts, command, args |
pod-overrides | containers, initContainers, volumes |