Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions stacks/go/1.5.0/devfile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
schemaVersion: 2.2.0
metadata:
name: go
displayName: Go Runtime
description: Go (version 1.24.x) is an open source programming language that makes it easy to build simple, reliable, and efficient software.
icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg
tags:
- Go
projectType: Go
language: Go
provider: Red Hat
version: 1.5.0
starterProjects:
- name: go-starter
description: A Go project with a simple HTTP server
git:
checkoutFrom:
revision: v1.5.0
remotes:
origin: https://github.com/devfile-samples/devfile-stack-go.git
components:
- container:
endpoints:
- name: https-go
targetPort: 8080
protocol: https
- exposure: none
name: debug
targetPort: 5858
image: registry.access.redhat.com/ubi9/go-toolset:1.25.5-1770654497
args: ["tail", "-f", "/dev/null"]
env:
- name: DEBUG_PORT
value: '5858'
memoryLimit: 1024Mi
mountSources: true
name: runtime
commands:
- exec:
env:
- name: GOPATH
value: ${PROJECT_SOURCE}/.go
- name: GOCACHE
value: ${PROJECT_SOURCE}/.cache
commandLine: go build main.go
component: runtime
group:
isDefault: true
kind: build
workingDir: ${PROJECT_SOURCE}
id: build
- exec:
commandLine: ./main
component: runtime
group:
isDefault: true
kind: run
workingDir: ${PROJECT_SOURCE}
id: run
- exec:
env:
- name: GOPATH
value: ${PROJECT_SOURCE}/.go
- name: GOCACHE
value: ${PROJECT_SOURCE}/.cache
commandLine: |
dlv \
--listen=127.0.0.1:${DEBUG_PORT} \
--only-same-user=false \
--headless=true \
--api-version=2 \
--accept-multiclient \
debug --continue main.go
component: runtime
group:
isDefault: true
kind: debug
workingDir: ${PROJECT_SOURCE}
id: debug
104 changes: 104 additions & 0 deletions stacks/go/2.6.0/devfile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
schemaVersion: 2.2.2
metadata:
name: go
displayName: Go Runtime
description: Go (version 1.25.x) is an open source programming language that makes it easy to build simple, reliable, and efficient software.
icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg
tags:
- Go
projectType: Go
language: Go
provider: Red Hat
version: 2.6.0
starterProjects:
- name: go-starter
description: A Go project with a simple HTTP server
git:
checkoutFrom:
revision: v2.6.0
remotes:
origin: https://github.com/devfile-samples/devfile-stack-go.git
Copy link
Member

Choose a reason for hiding this comment

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

We'll also want an update to the starter project to have Go 1.25 and a stack version reference tag with these changes.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@michael-valdron We would need to push a new tag after the pull request. Would you be able to do that?

components:
- name: build
image:
imageName: go-image:latest
dockerfile:
uri: docker/Dockerfile
buildContext: .
rootRequired: false
- name: deploy
kubernetes:
uri: kubernetes/deploy.yaml
endpoints:
- name: http-8081
targetPort: 8081
- container:
endpoints:
- name: https-go
protocol: https
targetPort: 8080
- exposure: none
name: debug
targetPort: 5858
image: registry.access.redhat.com/ubi9/go-toolset:1.25.5-1770654497
args: ['tail', '-f', '/dev/null']
env:
- name: DEBUG_PORT
value: '5858'
memoryLimit: 1024Mi
mountSources: true
name: runtime
commands:
- id: build-image
apply:
component: build
- id: deployk8s
apply:
component: deploy
- id: deploy
composite:
commands:
- build-image
- deployk8s
group:
kind: deploy
isDefault: true
- exec:
env:
- name: GOPATH
value: ${PROJECT_SOURCE}/.go
- name: GOCACHE
value: ${PROJECT_SOURCE}/.cache
commandLine: go build main.go
component: runtime
group:
isDefault: true
kind: build
workingDir: ${PROJECT_SOURCE}
id: build
- exec:
commandLine: ./main
component: runtime
group:
isDefault: true
kind: run
workingDir: ${PROJECT_SOURCE}
id: run

- exec:
commandLine: |
GOPATH=${PROJECT_SOURCE}/.go \
GOCACHE=${PROJECT_SOURCE}/.cache \
dlv \
--listen=127.0.0.1:${DEBUG_PORT} \
--only-same-user=false \
--headless=true \
--api-version=2 \
--accept-multiclient \
debug --continue main.go
component: runtime
group:
isDefault: true
kind: debug
workingDir: ${PROJECT_SOURCE}
id: debug
12 changes: 12 additions & 0 deletions stacks/go/2.6.0/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM registry.access.redhat.com/ubi9/go-toolset:1.25.5-1770654497

COPY go.mod ./
RUN go mod download

COPY *.go ./

RUN go build -o ./main

EXPOSE 8081

CMD [ "./main" , "-p=8081"]
41 changes: 41 additions & 0 deletions stacks/go/2.6.0/kubernetes/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
kind: Service
apiVersion: v1
metadata:
name: my-go-svc
spec:
ports:
- name: http-8081
port: 8081
protocol: TCP
targetPort: 8081
selector:
app: go-app
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: my-go
spec:
replicas: 1
selector:
matchLabels:
app: go-app
template:
metadata:
labels:
app: go-app
spec:
containers:
- name: my-go
image: go-image:latest
ports:
- name: http
containerPort: 8081
protocol: TCP
resources:
requests:
memory: "10Mi"
cpu: "10m"
limits:
memory: "100Mi"
cpu: "100m"
5 changes: 4 additions & 1 deletion stacks/go/stack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ versions:
- version: 1.2.0
# 1.2.1: use https protocol for endpoint
- version: 1.2.1
default: true # should have one and only one default version
# 1.3.0: debug command via dlv & go 1.20
- version: 1.3.0
# 1.3.1: use https protocol for endpoint
- version: 1.3.1
# 1.4.0: go 1.24
- version: 1.4.0
- version: 1.5.0
- version: 2.0.0
# 2.1.0: debug command via dlv
- version: 2.1.0
Expand All @@ -28,3 +28,6 @@ versions:
- version: 2.4.0
# 2.5.0: debug command via dlv & go 1.24
- version: 2.5.0
# 2.6.0: updated runtime image version
- version: 2.6.0
default: true # should have one and only one default version
Loading