WildFly icon

WildFly

stack

Upstream WildFly Getting Started

Details
Version
Schema version
2.2.0
Project type
wildfly
Language
java
Starter project
getting-started
WildFly Getting Started
Download
Devfile
schemaVersion: 2.2.0
metadata:
  name: wildfly-start
  version: 2.0.1
  website: https://wildfly.org
  displayName: WildFly Getting Started
  description: Upstream WildFly Getting Started
  icon: https://design.jboss.org/wildfly/logo/final/wildfly_logomark.svg
  tags: ['Java', 'WildFly']
  projectType: 'wildfly'
  language: 'java'
variables:
  imageRegistry: 'quay.io'
  imageName: 'getting-started'
  imageVersion: 'latest'
  applicationName: 'start'
  nodeName: 'getting-started'
starterProjects:
  - name: getting-started
    description: WildFly Getting Started
    git:
      checkoutFrom:
        remote: wildfly-devfile-examples
        revision: getting-started
      remotes:
        wildfly-devfile-examples: https://github.com/wildfly-extras/wildfly-devfile-examples.git
components:
  - name: tools
    container:
      image:  quay.io/devfile/universal-developer-image:ubi8-latest
      memoryLimit: 1512Mi
      mountSources: true
      volumeMounts:
        - name: m2
          path: /home/user/.m2
      env:
        - name: JAVA_OPTS
          value: '-Djava.security.egd=file:/dev/urandom -Djboss.host.name=localhost'
        - name: DEBUG_PORT
          value: '5005'
        - name: NODE_NAME
          value: '{{nodeName}}'
        - name: IMAGE_REGISTRY
          value: '{{imageRegistry}}'
        - name: IMAGE
          value: '{{imageName}}'
      endpoints:
        - name: debug
          exposure: internal
          protocol: tcp
          targetPort: 5005
        - name: 'http'
          protocol: http
          targetPort: 8080
          exposure: public
        - name: 'management'
          targetPort: 9990
          protocol: http
          exposure: internal
  - name: image-build
    image:
      dockerfile:
        buildContext: .
        rootRequired: false
        uri: Containerfile
      imageName: '{{imageName}}:{{imageVersion}}'
  - name: kubernetes-deploy
    kubernetes:
      endpoints:
        - name: http-8080
          path: /
          targetPort: 8080
      uri: deploy.yaml
    attributes:
        deployment/container-port: 8080
        deployment/cpuLimit: 100m
        deployment/cpuRequest: 10m
        deployment/memoryLimit: 300Mi
        deployment/memoryRequest: 180Mi
        deployment/replicas: 1
  - name: m2
    volume:
      size: 3Gi
commands:
  - id: package
    exec:
      label: "InnerLoop 01 - Build the application."
      component: tools
      commandLine: mvn clean verify
      workingDir: ${PROJECT_SOURCE}
      hotReloadCapable: true
      group:
        kind: build
        isDefault: true
  - id: run
    exec:
      label: "InnerLoop 02 - Run the application in dev mode."
      component: tools
      commandLine: mvn -Dwildfly.javaOpts="-Djboss.host.name=${NODE_NAME}" -Dmaven.test.skip=true clean package org.wildfly.plugins:wildfly-maven-plugin:dev
      workingDir: ${PROJECT_SOURCE}
      hotReloadCapable: true
      group:
        kind: run
        isDefault: true
  - id: debug
    exec:
      label: "InnerLoop 03 - Debug the application in dev mode."
      component: tools
      commandLine: mvn -Dwildfly.javaOpts="-Djboss.host.name=${NODE_NAME} -agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n" -Dmaven.test.skip=true clean package org.wildfly.plugins:wildfly-maven-plugin:dev
      workingDir: ${PROJECT_SOURCE}
      hotReloadCapable: true
      group:
        kind: debug
        isDefault: true
  - id: build-runtime-image
    exec:
      label: "OuterLoop 01 - Build Runtime Image."
      component: tools
      commandLine: "podman build -f Containerfile -t ${IMAGE_REGISTRY}/${IMAGE_REGISTRY_NAMESPACE}/${IMAGE} ."
      workingDir: ${PROJECT_SOURCE}
      group:
        kind: build
        isDefault: false
  - id: push-image
    exec:
      label: "OuterLoop 02 - Push Image into image registry."
      component: tools
      workingDir: ${PROJECT_SOURCE}
      commandLine: "podman tag ${IMAGE_REGISTRY}/${IMAGE_REGISTRY_NAMESPACE}/${IMAGE} ${IMAGE_REGISTRY}/${IMAGE_REGISTRY_NAMESPACE}/${IMAGE}:latest && podman login  ${IMAGE_REGISTRY} -u ${IMAGE_REGISTRY_LOGIN} -p ${IMAGE_REGISTRY_PASSWORD} && podman push --tls-verify=false ${IMAGE_REGISTRY}/${IMAGE_REGISTRY_NAMESPACE}/${IMAGE}:latest"
      group:
        kind: build
        isDefault: false
  - id: deploy-image
    exec:
      label: "OuterLoop 03 - Deploy Image into the cloud."
      component: tools
      workingDir: ${PROJECT_SOURCE}
      commandLine: "helm repo add wildfly https://docs.wildfly.org/wildfly-charts/ && helm install ${IMAGE} -f .charts/helm.yaml --set build.enabled=false --set image.name=${IMAGE_REGISTRY}/${IMAGE_REGISTRY_NAMESPACE}/${IMAGE} wildfly/wildfly"
      group:
        kind: run
        isDefault: false
  - id: undeploy-image
    exec:
      label: "OuterLoop 04 - Undeploy Image from the cloud."
      component: tools
      workingDir: ${PROJECT_SOURCE}
      commandLine: "helm uninstall ${IMAGE}"
      group:
        kind: run
        isDefault: false
  - id: build-image
    apply:
      component: image-build
  - id: deployk8s
    apply:
      component: kubernetes-deploy
  - id: deploy
    composite:
      commands:
        - build-image
        - deployk8s
      group:
        kind: deploy
        isDefault: true