はじめに
前回の例では、デプロイしたいDockerイメージをOpenShiftの外の世界で準備しておいて、それをそのままOpenShift上にデプロイする手順を見てみました。
今回は"Dockerビルド"と呼ばれるデプロイのシナリオを試してみます。このシナリオではDockerイメージをビルドする部分をOpenShift上で(oc new-appコマンドの処理の一部として)実行することができます。
今回のシナリオ: Dockerfile + baseイメージ => OpenShift上のPodとしてデプロイ
関連記事
Red Hat OpenShift Study / コンテナのデプロイ - (0) Dockerおさらい
Red Hat OpenShift Study / コンテナのデプロイ - (1) Dockerイメージを元にしたデプロイ
Red Hat OpenShift Study / コンテナのデプロイ - (2) Dockerビルド
Red Hat OpenShift Study / コンテナのデプロイ - (3) s2i ビルド
全体像
今回のシナリオでは、OpenShiftにデプロイする前段階として準備するものとしては、元になるDockerイメージ(DockerHub上のgolang:latest)と、新たにDockerイメージを作成するためのDockerfileおよびそこに組み込むソースファイルです。DockerfileとソースはGitHub上に保持しておく想定です。
全体像としては以下のようになります。
事前準備
まずは上の全体像の図の(1)~(5)の部分を事前準備として実施します。
GitHubリポジトリの準備
今回は簡易的なテストなので、GitHub上の個人アカウントにPrivateリポジトリ"openshift-test"というリポジトリを作成することにします。
GitHubやGitについての詳細はここでは割愛しますが、以下のようにGitHubリポジトリを作成しておきます。
Dockerファイル/ソースの準備
今回のシナリオでは、DockerfileとソースをGitHub上に作成すればよいのですが、当然事前に稼働確認はしておきたいですよね。ここは前回と同じようにPodman環境を整備したLinux環境で動作確認しつつ、Dockerfile, ソースを準備していきます。
Dockerfileの作成
前回とは少しDockerfile変更したものを用意しました。
FROM golang:latest
USER 1001
RUN mkdir test
COPY main.go test/
EXPOSE 8080
#CMD ["sh", "-c", "GOCACHE=off", "go", "run", "/go/test/main.go"]
CMD export GOCACHE=/go/test;go run /go/test/main.go
前回はDockerイメージのビルド部分はPodman環境で実施しましたが、今回はビルド部分はOpenShift上で実施する想定です(今回も事前のテストとしてはローカルのPodmanでビルドしますが)。
このビルドをするユーザーもrootではなく任意のユーザー(グループはroot)で実施されることになるので、権限周りは注意が必要です。
元のDockerイメージ"golang"では、ルートディレクトリ"/"のパーミッションが"755"になっていてrootユーザー以外ではルートディレクトリ以下にディレクトリが作れないようになっています。一方WORKDIRとしては/goが指定されていてここはパーミッションが"777"になっているので、ここを使用するように変更しています。
Go言語ソース作成
これは前回と全く同じものをそのまま使います。
package main
import (
"fmt"
"log"
"net/http"
)
func main(){
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
log.Println("received request")
fmt.Fprintf(w, "Hello Docker!")
})
log.Println("start server")
server := &http.Server{Addr: ":8080"}
if err := server.ListenAndServe(); err != nil {
log.Println(err)
}
}
ローカルでのビルド/稼働のテスト
Podman環境でビルドできるかどうか確認しておきます。
# podman build -t gotest .
STEP 1: FROM golang:latest
STEP 2: USER 1001
--> Using cache d854e30178bbe6a7c5e9f63cc9c765190a94fcf0c983b4e6bba083876c2963b9
STEP 3: RUN mkdir test
9bb55922b975bf0c283417867e59c63f6ff3c6e9b7505888d435b613e7ff6272
STEP 4: COPY main.go test/
c5156d6917bd2ae5961e1d9326275564a07d44d4798c504830a869717574dc72
STEP 5: EXPOSE 8080
250d77372cc35152a20d65be50df13090e3a4349e301c5435bc0d75660bd8ba7
STEP 6: CMD export GOCACHE=/go/test;go run /go/test/main.go
STEP 7: COMMIT gotest
fcd2714e7ad9fa306558243e13f1e5e7d3117bdf668d0131bf2e2b6c5bef65fa
ローカルでの稼働確認もしておきます。
podman run --rm -d -p 8080:8080 --name gotest gotest
c70499e883948fbcf72c866fbc45cecadfe76c47ea4c5d32abd80d2095624930
# curl localhost:8080
Hello Docker!
# podman stop gotest
c70499e883948fbcf72c866fbc45cecadfe76c47ea4c5d32abd80d2095624930
GitHubへpush
Dockerfileとソースの確認が済んだら、それらをGitHubにプッシュしておきます。
ここでは、mainブランチのgotestフォルダー以下に配置することにします(手順は一般的なgit操作の話なのでここでは割愛)。
コンテナのデプロイ
上で準備したDockerfile、ソースを元に、Dockerイメージのビルド、デプロイを実施してみます。全体像の図の(6)~(8)を実行します。
プロジェクト作成
ここではtomotag-test02というプロジェクトを作成し、そこにデプロイしてみます。
# oc new-project tomotag-test02
Now using project "tomotag-test02" on server "https://xxx.cloud.ibm.com:nnn".
You can add applications to this project with the 'new-app' command. For example, try:
oc new-app rails-postgresql-example
to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:
kubectl create deployment hello-node --image=k8s.gcr.io/serve_hostname
GitHubアクセス用シークレット作成
以下のマニュアルの記述を参考に。
OpneShift Container Platform V4.5 - ビルド - 3.4 Gitソース
今回はBasic認証用にユーザーIDとパスワードをLiteralで指定。
# oc create secret generic github --from-literal=username=tomotagwork --from-literal=password=xxxxx --type=kubernetes.io/basic-auth
secret/github created
アノテーションを付与する。
# oc annotate secret github 'build.openshift.io/source-secret-match-uri-1=https://github.com/tomotagwork/*'
secret/github annotated
以下のようなシークレットがネームスペースtomotag-test02に作成されました。
# oc get secret github -o yaml
apiVersion: v1
data:
password: xxxxx
username: dG9tb3RhZ3dvcms=
kind: Secret
metadata:
annotations:
build.openshift.io/source-secret-match-uri-1: https://github.com/tomotagwork/*
creationTimestamp: "2021-07-19T07:59:13Z"
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:data:
.: {}
f:password: {}
f:username: {}
f:type: {}
manager: kubectl-create
operation: Update
time: "2021-07-19T07:59:13Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:build.openshift.io/source-secret-match-uri-1: {}
manager: kubectl-annotate
operation: Update
time: "2021-07-19T08:00:46Z"
name: github
namespace: tomotag-test02
resourceVersion: "73778391"
selfLink: /api/v1/namespaces/tomotag-test02/secrets/github
uid: 51741477-e159-4e85-9404-a312b6d18eb8
※今回のシナリオでは元になるDockerイメージ(golang)はDockerHubに公開されているものをそのまま使います。すなわち認証が不要なので、DockerHubに対する認証情報は設定しません。
ビルド&デプロイ
# oc new-app --as-deployment-config --name gotest https://github.com/tomotagwork/openshift-test#main --contex
t-dir gotest
Username for 'https://github.com': tomotagwork
Password for 'https://tomotagwork@github.com':
Username for 'https://github.com': tomotagwork
Password for 'https://tomotagwork@github.com':
warning: Cannot check if git requires authentication.
--> Found image 2b397b4 (2 years old) in image stream "openshift/golang" under tag "latest" for "golang:latest"
Go 1.11.5
---------
Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
Tags: builder, golang, golang111, rh-golang111, go
* A Docker build using source code from https://github.com/tomotagwork/openshift-test#main will be created
* The resulting image will be pushed to image stream tag "gotest:latest"
* Use 'oc start-build' to trigger a new build
* WARNING: this source repository may require credentials.
Create a secret with your git credentials and use 'oc set build-secret' to assign it to the build config.
* This image will be deployed in deployment config "gotest"
* Port 8080/tcp will be load balanced by service "gotest"
* Other containers can access this service through the hostname "gotest"
--> Creating resources ...
imagestream.image.openshift.io "gotest" created
buildconfig.build.openshift.io "gotest" created
deploymentconfig.apps.openshift.io "gotest" created
service "gotest" created
--> Success
Build scheduled, use 'oc logs -f buildconfig/gotest' to track its progress.
Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
'oc expose service/gotest'
Run 'oc status' to view your app.
先に準備したDockerfileを元に新たなDockerイメージがOpenShiftクラスター上でビルドされ、それがデプロイされました。
# oc get all
NAME READY STATUS RESTARTS AGE
pod/gotest-1-2g7hz 1/1 Running 0 12m
pod/gotest-1-build 0/1 Completed 0 14m
pod/gotest-1-deploy 0/1 Completed 0 12m
NAME DESIRED CURRENT READY AGE
replicationcontroller/gotest-1 1 1 1 12m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/gotest ClusterIP 172.21.xx.xx <none> 8080/TCP 14m
NAME REVISION DESIRED CURRENT TRIGGERED BY
deploymentconfig.apps.openshift.io/gotest 1 1 1 config,image(gotest:latest)
NAME TYPE FROM LATEST
buildconfig.build.openshift.io/gotest Docker Git@main 1
NAME TYPE FROM STATUS STARTED DURATION
build.build.openshift.io/gotest-1 Docker Git@1062eb6 Complete 14 minutes ago 1m47s
NAME IMAGE REPOSITORY TAGS UPDATED
imagestream.image.openshift.io/gotest image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest latest 12 minutes ago
oc new-app コマンド補足
上の例では、oc new-app コマンドの --strategyオプションを明示指定していませんが、指定したURLの --context-dir下にDockerfileがあった場合、Dockerビルドと認識されるようです。つまり--strategy=docker を指定したと同じ挙動になります。
ただ、OpenShift V4.5の公式ドキュメントからこの辺りの動きについての詳細な記述を見つけることができませんでした。
例えば、OpenShift V3.11のドキュメントには以下の記述があります。
https://docs.openshift.com/container-platform/3.11/dev_guide/application_lifecycle/new_app.html
Build Strategy Detection
If a Jenkinsfile exists in the root or specified context directory of the source repository when creating a new application, OpenShift Container Platform generates a Pipeline build strategy. Otherwise, if a Dockerfile is found, OpenShift Container Platform generates a Docker build strategy. Otherwise, it generates a Source build strategy.
You can override the build strategy by setting the --strategy flag to either docker, pipeline or source.
$ oc new-app /home/user/code/myapp --strategy=docker
OpenShift V4以降はドキュメントの体系も変わってしまっているのですが、Applicationの章に類似の内容が記載されており、以下のような記述に変更されています。
https://docs.openshift.com/container-platform/4.5/applications/application_life_cycle_management/creating-applications-using-cli.html#build-strategy-detection
Build strategy detection
If a Jenkins file exists in the root or specified context directory of the source repository when creating a new application, OpenShift Container Platform generates a pipeline build strategy. Otherwise, it generates a source build strategy.
Override the build strategy by setting the --strategy flag to either pipeline or source.
$ oc new-app /home/user/code/myapp --strategy=docker
Dockerfileについての記述が無くなっていますが、サンプルとして--strategy=dockerでOverrideする例はそのままというなんとも微妙な書き方になっています。この記述の通りだとすると Dockerビルドのstrategyを使用したければ明示的に--strategyを指定しなければいけないように読み取れますが、実際にはDockerfileを検知してDockerビルドが行われています。
こんな感じで古いドキュメントには記載されていてV4以降も同じ動作をしていそうだけど新しいドキュメントには見当たらないということがいくつかあった気がします。この辺の分かりにくさがイケてないんだよなぁ...
Dockerビルドを行う際は、oc new-appコマンド実行時に--strategy=dockerと明示指定するのが無難なのかもしれません。
稼働確認
作成されたserviceをrouteとして公開して実際にアクセスしてみます。
# oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
gotest ClusterIP 172.21.xx.xx <none> 8080/TCP 15m
# oc expose svc gotest
route.route.openshift.io/gotest exposed
# oc get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
gotest gotest-tomotag-test02.xxx.containers.appdomain.cloud gotest 8080-tcp None
curlでアクセスしてみる。
# curl gotest-tomotag-test02.xxx.appdomain.cloud
Hello Docker!
きちんと結果が返されました!
生成されたリソースの確認
oc new-appコマンドで生成されたリソースを確認しておきます。
BuildConfig
oc get bc/gotest -o yaml
apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: "2021-07-19T08:02:20Z"
labels:
app: gotest
app.kubernetes.io/component: gotest
app.kubernetes.io/instance: gotest
managedFields:
- apiVersion: build.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/generated-by: {}
f:labels:
.: {}
f:app: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:spec:
f:output:
f:to:
.: {}
f:kind: {}
f:name: {}
f:runPolicy: {}
f:source:
f:contextDir: {}
f:git:
.: {}
f:ref: {}
f:uri: {}
f:type: {}
f:strategy:
f:dockerStrategy:
.: {}
f:from:
.: {}
f:kind: {}
f:name: {}
f:namespace: {}
f:type: {}
manager: oc
operation: Update
time: "2021-07-19T08:02:20Z"
- apiVersion: build.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:spec:
f:triggers: {}
f:status:
f:lastVersion: {}
manager: openshift-apiserver
operation: Update
time: "2021-07-19T08:02:20Z"
name: gotest
namespace: tomotag-test02
resourceVersion: "73778783"
selfLink: /apis/build.openshift.io/v1/namespaces/tomotag-test02/buildconfigs/gotest
uid: 3a39d468-69d0-4d11-b97b-01749f84e27b
spec:
failedBuildsHistoryLimit: 5
nodeSelector: null
output:
to:
kind: ImageStreamTag
name: gotest:latest
postCommit: {}
resources: {}
runPolicy: Serial
source:
contextDir: gotest
git:
ref: main
uri: https://github.com/tomotagwork/openshift-test
sourceSecret:
name: github
type: Git
strategy:
dockerStrategy:
from:
kind: ImageStreamTag
name: golang:latest
namespace: openshift
type: Docker
successfulBuildsHistoryLimit: 5
triggers:
- github:
secret: 5afitRLb7M5HKYfGdCl2
type: GitHub
- generic:
secret: Vu6c4SNe0vs6E8f_alf5
type: Generic
- type: ConfigChange
- imageChange:
lastTriggeredImageID: image-registry.openshift-image-registry.svc:5000/openshift/golang@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
type: ImageChange
status:
lastVersion: 1
oc describe bc/gotest
Name: gotest
Namespace: tomotag-test02
Created: 21 minutes ago
Labels: app=gotest
app.kubernetes.io/component=gotest
app.kubernetes.io/instance=gotest
Annotations: openshift.io/generated-by=OpenShiftNewApp
Latest Version: 1
Strategy: Docker
URL: https://github.com/tomotagwork/openshift-test
Ref: main
ContextDir: gotest
Source Secret: github
From Image: ImageStreamTag openshift/golang:latest
Output to: ImageStreamTag gotest:latest
Build Run Policy: Serial
Triggered by: Config, ImageChange
Webhook GitHub:
URL: https://c100-e.jp-tok.containers.cloud.ibm.com:30549/apis/build.openshift.io/v1/namespaces/tomotag-test02/buildconfigs/gotest/webhooks/<secret>/github
Webhook Generic:
URL: https://c100-e.jp-tok.containers.cloud.ibm.com:30549/apis/build.openshift.io/v1/namespaces/tomotag-test02/buildconfigs/gotest/webhooks/<secret>/generic
AllowEnv: false
Builds History Limit:
Successful: 5
Failed: 5
Build Status Duration Creation Time
gotest-1 complete 1m47s 2021-07-19 17:02:20 +0900 JST
Events: <none>
ImageStream
oc get is/golang -n openshift -o yaml
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
annotations:
openshift.io/display-name: Go
samples.operator.openshift.io/version: 4.5.40
creationTimestamp: "2020-12-28T06:53:36Z"
generation: 2
labels:
samples.operator.openshift.io/managed: "true"
managedFields:
- apiVersion: image.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/display-name: {}
f:samples.operator.openshift.io/version: {}
f:labels:
.: {}
f:samples.operator.openshift.io/managed: {}
f:spec:
f:tags:
.: {}
k:{"name":"1.11.5"}:
.: {}
f:annotations:
.: {}
f:description: {}
f:iconClass: {}
f:openshift.io/display-name: {}
f:openshift.io/provider-display-name: {}
f:sampleRepo: {}
f:supports: {}
f:tags: {}
f:from:
.: {}
f:kind: {}
f:name: {}
f:generation: {}
f:importPolicy: {}
f:name: {}
f:referencePolicy:
.: {}
f:type: {}
k:{"name":"latest"}:
.: {}
f:annotations:
.: {}
f:description: {}
f:iconClass: {}
f:openshift.io/display-name: {}
f:openshift.io/provider-display-name: {}
f:sampleRepo: {}
f:supports: {}
f:tags: {}
f:from:
.: {}
f:kind: {}
f:name: {}
f:generation: {}
f:importPolicy: {}
f:name: {}
f:referencePolicy:
.: {}
f:type: {}
f:status:
f:dockerImageRepository: {}
manager: cluster-samples-operator
operation: Update
time: "2021-06-29T16:47:14Z"
name: golang
namespace: openshift
resourceVersion: "67347140"
selfLink: /apis/image.openshift.io/v1/namespaces/openshift/imagestreams/golang
uid: 1fb40447-2cfc-45d2-81e2-af312dbce3d4
spec:
lookupPolicy:
local: false
tags:
- annotations:
description: |-
Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
iconClass: icon-go-gopher
openshift.io/display-name: Go (1.11.5)
openshift.io/provider-display-name: Red Hat, Inc.
sampleRepo: https://github.com/sclorg/golang-ex.git
supports: golang
tags: builder,golang,go
from:
kind: DockerImage
name: registry.redhat.io/devtools/go-toolset-rhel7:1.11.5
generation: 2
importPolicy: {}
name: 1.11.5
referencePolicy:
type: Local
- annotations:
description: |-
Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
iconClass: icon-go-gopher
openshift.io/display-name: Go (Latest)
openshift.io/provider-display-name: Red Hat, Inc.
sampleRepo: https://github.com/sclorg/golang-ex.git
supports: golang
tags: builder,golang,go
from:
kind: ImageStreamTag
name: 1.11.5
generation: 1
importPolicy: {}
name: latest
referencePolicy:
type: Local
status:
dockerImageRepository: image-registry.openshift-image-registry.svc:5000/openshift/golang
tags:
- items:
- created: "2020-12-28T06:54:27Z"
dockerImageReference: registry.redhat.io/devtools/go-toolset-rhel7@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
generation: 2
image: sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
tag: 1.11.5
- items:
- created: "2020-12-28T06:54:27Z"
dockerImageReference: registry.redhat.io/devtools/go-toolset-rhel7@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
generation: 2
image: sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
tag: latest
oc describe is/golang -n openshift
Name: golang
Namespace: openshift
Created: 6 months ago
Labels: samples.operator.openshift.io/managed=true
Annotations: openshift.io/display-name=Go
samples.operator.openshift.io/version=4.5.40
Image Repository: image-registry.openshift-image-registry.svc:5000/openshift/golang
Image Lookup: local=false
Unique Images: 1
Tags: 2
1.11.5 (latest)
tagged from registry.redhat.io/devtools/go-toolset-rhel7:1.11.5
prefer registry pullthrough when referencing this tag
Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
Tags: builder, golang, go
Supports: golang
Example Repo: https://github.com/sclorg/golang-ex.git
* registry.redhat.io/devtools/go-toolset-rhel7@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
6 months ago
oc get is/gotest -o yaml
apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: "2021-07-19T08:02:20Z"
generation: 1
labels:
app: gotest
app.kubernetes.io/component: gotest
app.kubernetes.io/instance: gotest
managedFields:
- apiVersion: image.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/generated-by: {}
f:labels:
.: {}
f:app: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
manager: oc
operation: Update
time: "2021-07-19T08:02:20Z"
name: gotest
namespace: tomotag-test02
resourceVersion: "73779201"
selfLink: /apis/image.openshift.io/v1/namespaces/tomotag-test02/imagestreams/gotest
uid: 74c902e5-c42d-4be6-aa96-225c146984b8
spec:
lookupPolicy:
local: false
status:
dockerImageRepository: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest
tags:
- items:
- created: "2021-07-19T08:04:08Z"
dockerImageReference: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
generation: 1
image: sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
tag: latest
oc describe is/gotest
Name: gotest
Namespace: tomotag-test02
Created: 31 minutes ago
Labels: app=gotest
app.kubernetes.io/component=gotest
app.kubernetes.io/instance=gotest
Annotations: openshift.io/generated-by=OpenShiftNewApp
Image Repository: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest
Image Lookup: local=false
Unique Images: 1
Tags: 1
latest
no spec tag
* image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
29 minutes ago
ImageStreamTag
oc get istag/golang:latest -n openshift -o yaml
apiVersion: image.openshift.io/v1
generation: 2
image:
dockerImageLayers:
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606
size: 75834225
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21
size: 1576
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58
size: 262532666
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03
size: 348855340
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242
size: 161469112
dockerImageManifestMediaType: application/vnd.docker.distribution.manifest.v2+json
dockerImageMetadata:
Architecture: amd64
Config:
Cmd:
- /bin/sh
- -c
- $STI_SCRIPTS_PATH/usage
Entrypoint:
- container-entrypoint
Env:
- PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- container=oci
- SUMMARY=Platform for building and running Go 1.11.5 based applications
- DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
- STI_SCRIPTS_URL=image:///usr/libexec/s2i
- STI_SCRIPTS_PATH=/usr/libexec/s2i
- APP_ROOT=/opt/app-root
- HOME=/opt/app-root/src
- PLATFORM=el7
- BASH_ENV=/opt/app-root/etc/scl_enable
- ENV=/opt/app-root/etc/scl_enable
- PROMPT_COMMAND=. /opt/app-root/etc/scl_enable
- NODEJS_SCL=rh-nodejs10
- NAME=golang
- VERSION=1.11.5
Hostname: a2986d461f97
Image: 29f4fcf01d36ee3384d2e6d2cee50842cd62b077e5460291ef456fe4ad8e2c8f
Labels:
architecture: x86_64
authoritative-source-url: registry.access.redhat.com
build-date: 2019-06-28T17:01:37.424877
com.redhat.build-host: cpt-1001.osbs.prod.upshift.rdu2.redhat.com
com.redhat.component: go-toolset-container
com.redhat.license_terms: https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel
description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
distribution-scope: public
io.k8s.description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
io.k8s.display-name: Go 1.11.5
io.openshift.s2i.scripts-url: image:///usr/libexec/s2i
io.openshift.tags: builder,golang,golang111,rh-golang111,go
io.s2i.scripts-url: image:///usr/libexec/s2i
name: devtools/go-toolset-rhel7
release: "18.1561731145"
summary: Platform for building and running Go 1.11.5 based applications
url: https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145
vcs-ref: fa805422e711bef17cf49441b80a18a5445e4fda
vcs-type: git
vendor: Red Hat, Inc.
version: 1.11.5
User: "1001"
WorkingDir: /opt/app-root/src
ContainerConfig:
Cmd:
- /bin/sh
- -c
- '#(nop) '
- USER [1001]
Entrypoint:
- container-entrypoint
Env:
- PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- container=oci
- SUMMARY=Platform for building and running Go 1.11.5 based applications
- DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
- STI_SCRIPTS_URL=image:///usr/libexec/s2i
- STI_SCRIPTS_PATH=/usr/libexec/s2i
- APP_ROOT=/opt/app-root
- HOME=/opt/app-root/src
- PLATFORM=el7
- BASH_ENV=/opt/app-root/etc/scl_enable
- ENV=/opt/app-root/etc/scl_enable
- PROMPT_COMMAND=. /opt/app-root/etc/scl_enable
- NODEJS_SCL=rh-nodejs10
- NAME=golang
- VERSION=1.11.5
Hostname: a2986d461f97
Image: sha256:07f36c322dfa067e4b1e2b8559d57af286f4e7931a124f08f12004dac7061a54
Labels:
architecture: x86_64
authoritative-source-url: registry.access.redhat.com
build-date: 2019-06-28T17:01:37.424877
com.redhat.build-host: cpt-1001.osbs.prod.upshift.rdu2.redhat.com
com.redhat.component: go-toolset-container
com.redhat.license_terms: https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel
description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
distribution-scope: public
io.k8s.description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
io.k8s.display-name: Go 1.11.5
io.openshift.s2i.scripts-url: image:///usr/libexec/s2i
io.openshift.tags: builder,golang,golang111,rh-golang111,go
io.s2i.scripts-url: image:///usr/libexec/s2i
name: devtools/go-toolset-rhel7
release: "18.1561731145"
summary: Platform for building and running Go 1.11.5 based applications
url: https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145
vcs-ref: fa805422e711bef17cf49441b80a18a5445e4fda
vcs-type: git
vendor: Red Hat, Inc.
version: 1.11.5
User: "1001"
WorkingDir: /opt/app-root/src
Created: "2019-06-28T17:03:25Z"
DockerVersion: 1.13.1
Id: sha256:2b397b46f0d6f8c0703e32687427247b582896d56ec5130c4ddc64871e49e5ac
Size: 848699400
apiVersion: "1.0"
kind: DockerImage
dockerImageMetadataVersion: "1.0"
dockerImageReference: image-registry.openshift-image-registry.svc:5000/openshift/golang@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
metadata:
annotations:
description: |-
Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
iconClass: icon-go-gopher
image.openshift.io/dockerLayersOrder: ascending
openshift.io/display-name: Go (Latest)
openshift.io/provider-display-name: Red Hat, Inc.
sampleRepo: https://github.com/sclorg/golang-ex.git
supports: golang
tags: builder,golang,go
creationTimestamp: "2020-12-28T06:54:27Z"
name: sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
resourceVersion: "13461"
uid: 96c4259d-a557-4be2-8976-351513088e84
kind: ImageStreamTag
lookupPolicy:
local: false
metadata:
annotations:
description: |-
Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
iconClass: icon-go-gopher
openshift.io/display-name: Go (Latest)
openshift.io/provider-display-name: Red Hat, Inc.
sampleRepo: https://github.com/sclorg/golang-ex.git
supports: golang
tags: builder,golang,go
creationTimestamp: "2020-12-28T06:54:27Z"
labels:
samples.operator.openshift.io/managed: "true"
name: golang:latest
namespace: openshift
resourceVersion: "67347140"
selfLink: /apis/image.openshift.io/v1/namespaces/openshift/imagestreamtags/golang:latest
uid: 1fb40447-2cfc-45d2-81e2-af312dbce3d4
tag:
annotations:
description: |-
Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
iconClass: icon-go-gopher
openshift.io/display-name: Go (Latest)
openshift.io/provider-display-name: Red Hat, Inc.
sampleRepo: https://github.com/sclorg/golang-ex.git
supports: golang
tags: builder,golang,go
from:
kind: ImageStreamTag
name: 1.11.5
generation: 1
importPolicy: {}
name: latest
referencePolicy:
type: Local
oc describe istag/golang:latest -n openshift
Image Name: sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
Docker Image: image-registry.openshift-image-registry.svc:5000/openshift/golang@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
Name: sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
Created: 6 months ago
Description: Build and run Go applications on RHEL 7. For more information about using this builder image, including OpenShift considerations, see https://github.com/sclorg/golang-container/blob/master/README.md.
WARNING: By selecting this tag, your application will automatically update to use the latest version of Go available on OpenShift, including major version updates.
Annotations: iconClass=icon-go-gopher
image.openshift.io/dockerLayersOrder=ascending
openshift.io/display-name=Go (Latest)
openshift.io/provider-display-name=Red Hat, Inc.
sampleRepo=https://github.com/sclorg/golang-ex.git
supports=golang
tags=builder,golang,go
Image Size: 848.7MB in 5 layers
Layers: 75.83MB sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606
1.576kB sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21
262.5MB sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58
348.9MB sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03
161.5MB sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242
Image Created: 2 years ago
Author: <none>
Arch: amd64
Entrypoint: container-entrypoint
Command: /bin/sh -c $STI_SCRIPTS_PATH/usage
Working Dir: /opt/app-root/src
User: 1001
Exposes Ports: <none>
Docker Labels: architecture=x86_64
authoritative-source-url=registry.access.redhat.com
build-date=2019-06-28T17:01:37.424877
com.redhat.build-host=cpt-1001.osbs.prod.upshift.rdu2.redhat.com
com.redhat.component=go-toolset-container
com.redhat.license_terms=https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel
description=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
distribution-scope=public
io.k8s.description=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
io.k8s.display-name=Go 1.11.5
io.openshift.s2i.scripts-url=image:///usr/libexec/s2i
io.openshift.tags=builder,golang,golang111,rh-golang111,go
io.s2i.scripts-url=image:///usr/libexec/s2i
name=devtools/go-toolset-rhel7
release=18.1561731145
summary=Platform for building and running Go 1.11.5 based applications
url=https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145
vcs-ref=fa805422e711bef17cf49441b80a18a5445e4fda
vcs-type=git
vendor=Red Hat, Inc.
version=1.11.5
Environment: PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
container=oci
SUMMARY=Platform for building and running Go 1.11.5 based applications
DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
STI_SCRIPTS_URL=image:///usr/libexec/s2i
STI_SCRIPTS_PATH=/usr/libexec/s2i
APP_ROOT=/opt/app-root
HOME=/opt/app-root/src
PLATFORM=el7
BASH_ENV=/opt/app-root/etc/scl_enable
ENV=/opt/app-root/etc/scl_enable
PROMPT_COMMAND=. /opt/app-root/etc/scl_enable
NODEJS_SCL=rh-nodejs10
NAME=golang
VERSION=1.11.5
oc get istag/gotest:latest -o yaml
apiVersion: image.openshift.io/v1
generation: 1
image:
dockerImageLayers:
- mediaType: application/vnd.docker.image.rootfs.diff.tar
name: sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606
size: 75834225
- mediaType: application/vnd.docker.image.rootfs.diff.tar
name: sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21
size: 1576
- mediaType: application/vnd.docker.image.rootfs.diff.tar
name: sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58
size: 262532666
- mediaType: application/vnd.docker.image.rootfs.diff.tar
name: sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03
size: 348855340
- mediaType: application/vnd.docker.image.rootfs.diff.tar
name: sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242
size: 161469112
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:9fc61af83bfaa157a19efd233c8882562d984024898ec5973ffc13cd78ffc411
size: 229
- mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
name: sha256:bfe65b4d02120f13b2f49e7d477c55628892777cb44938ad8c1f7785e1176aa7
size: 413
dockerImageManifestMediaType: application/vnd.docker.distribution.manifest.v2+json
dockerImageMetadata:
Architecture: amd64
Config:
Cmd:
- /bin/sh
- -c
- export GOCACHE=/go/test;go run /go/test/main.go
Entrypoint:
- container-entrypoint
Env:
- PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- container=oci
- SUMMARY=Platform for building and running Go 1.11.5 based applications
- DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
- STI_SCRIPTS_URL=image:///usr/libexec/s2i
- STI_SCRIPTS_PATH=/usr/libexec/s2i
- APP_ROOT=/opt/app-root
- HOME=/opt/app-root/src
- PLATFORM=el7
- BASH_ENV=/opt/app-root/etc/scl_enable
- ENV=/opt/app-root/etc/scl_enable
- PROMPT_COMMAND=. /opt/app-root/etc/scl_enable
- NODEJS_SCL=rh-nodejs10
- NAME=golang
- VERSION=1.11.5
- OPENSHIFT_BUILD_NAME=gotest-1
- OPENSHIFT_BUILD_NAMESPACE=tomotag-test02
- OPENSHIFT_BUILD_SOURCE=https://github.com/tomotagwork/openshift-test
- OPENSHIFT_BUILD_REFERENCE=main
- OPENSHIFT_BUILD_COMMIT=1062eb687855f93d36e957a66f32dd7265fb38d8
ExposedPorts:
8080/tcp: {}
Hostname: a2986d461f97
Image: 29f4fcf01d36ee3384d2e6d2cee50842cd62b077e5460291ef456fe4ad8e2c8f
Labels:
architecture: x86_64
authoritative-source-url: registry.access.redhat.com
build-date: 2019-06-28T17:01:37.424877
com.redhat.build-host: cpt-1001.osbs.prod.upshift.rdu2.redhat.com
com.redhat.component: go-toolset-container
com.redhat.license_terms: https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel
description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
distribution-scope: public
io.k8s.description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
io.k8s.display-name: Go 1.11.5
io.openshift.build.commit.author: Tomohiro Taguchi \u003ctomotagwork@gmail.com\u003e
io.openshift.build.commit.date: Mon Jul 19 13:29:44 2021 +0900
io.openshift.build.commit.id: 1062eb687855f93d36e957a66f32dd7265fb38d8
io.openshift.build.commit.message: modify Dockerfile
io.openshift.build.commit.ref: main
io.openshift.build.name: gotest-1
io.openshift.build.namespace: tomotag-test02
io.openshift.build.source-context-dir: gotest
io.openshift.s2i.scripts-url: image:///usr/libexec/s2i
io.openshift.tags: builder,golang,golang111,rh-golang111,go
io.s2i.scripts-url: image:///usr/libexec/s2i
name: devtools/go-toolset-rhel7
release: "18.1561731145"
summary: Platform for building and running Go 1.11.5 based applications
url: https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145
vcs-ref: fa805422e711bef17cf49441b80a18a5445e4fda
vcs-type: git
vendor: Red Hat, Inc.
version: 1.11.5
User: "1001"
WorkingDir: /go
Container: 1e0fc88630a750bbbca502234624e34dbba64b0157e6a555e3fad1df18683072
ContainerConfig:
Cmd:
- /bin/sh
- -c
- export GOCACHE=/go/test;go run /go/test/main.go
Entrypoint:
- container-entrypoint
Env:
- PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- container=oci
- SUMMARY=Platform for building and running Go 1.11.5 based applications
- DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
- STI_SCRIPTS_URL=image:///usr/libexec/s2i
- STI_SCRIPTS_PATH=/usr/libexec/s2i
- APP_ROOT=/opt/app-root
- HOME=/opt/app-root/src
- PLATFORM=el7
- BASH_ENV=/opt/app-root/etc/scl_enable
- ENV=/opt/app-root/etc/scl_enable
- PROMPT_COMMAND=. /opt/app-root/etc/scl_enable
- NODEJS_SCL=rh-nodejs10
- NAME=golang
- VERSION=1.11.5
- OPENSHIFT_BUILD_NAME=gotest-1
- OPENSHIFT_BUILD_NAMESPACE=tomotag-test02
- OPENSHIFT_BUILD_SOURCE=https://github.com/tomotagwork/openshift-test
- OPENSHIFT_BUILD_REFERENCE=main
- OPENSHIFT_BUILD_COMMIT=1062eb687855f93d36e957a66f32dd7265fb38d8
ExposedPorts:
8080/tcp: {}
Hostname: a2986d461f97
Image: 29f4fcf01d36ee3384d2e6d2cee50842cd62b077e5460291ef456fe4ad8e2c8f
Labels:
architecture: x86_64
authoritative-source-url: registry.access.redhat.com
build-date: 2019-06-28T17:01:37.424877
com.redhat.build-host: cpt-1001.osbs.prod.upshift.rdu2.redhat.com
com.redhat.component: go-toolset-container
com.redhat.license_terms: https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel
description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
distribution-scope: public
io.k8s.description: Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
io.k8s.display-name: Go 1.11.5
io.openshift.build.commit.author: Tomohiro Taguchi \u003ctomotagwork@gmail.com\u003e
io.openshift.build.commit.date: Mon Jul 19 13:29:44 2021 +0900
io.openshift.build.commit.id: 1062eb687855f93d36e957a66f32dd7265fb38d8
io.openshift.build.commit.message: modify Dockerfile
io.openshift.build.commit.ref: main
io.openshift.build.name: gotest-1
io.openshift.build.namespace: tomotag-test02
io.openshift.build.source-context-dir: gotest
io.openshift.s2i.scripts-url: image:///usr/libexec/s2i
io.openshift.tags: builder,golang,golang111,rh-golang111,go
io.s2i.scripts-url: image:///usr/libexec/s2i
name: devtools/go-toolset-rhel7
release: "18.1561731145"
summary: Platform for building and running Go 1.11.5 based applications
url: https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145
vcs-ref: fa805422e711bef17cf49441b80a18a5445e4fda
vcs-type: git
vendor: Red Hat, Inc.
version: 1.11.5
User: "1001"
WorkingDir: /go
Created: "2021-07-19T08:04:05Z"
Id: sha256:3f6c7a3122f7eca918b1f56884ba5de4b37d4661938aa28475beceae184c32a5
Parent: sha256:980153227400bd469ca5126830d7b415fa5916979b5fd0a8ce771d25c41bd9f2
Size: 848703484
apiVersion: "1.0"
kind: DockerImage
dockerImageMetadataVersion: "1.0"
dockerImageReference: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
metadata:
annotations:
image.openshift.io/dockerLayersOrder: ascending
image.openshift.io/manifestBlobStored: "true"
openshift.io/image.managed: "true"
creationTimestamp: "2021-07-19T08:04:08Z"
name: sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
resourceVersion: "73779200"
uid: 9898586e-d439-4e23-b638-3fc11e04d785
kind: ImageStreamTag
lookupPolicy:
local: false
metadata:
creationTimestamp: "2021-07-19T08:04:08Z"
labels:
app: gotest
app.kubernetes.io/component: gotest
app.kubernetes.io/instance: gotest
name: gotest:latest
namespace: tomotag-test02
resourceVersion: "73779201"
selfLink: /apis/image.openshift.io/v1/namespaces/tomotag-test02/imagestreamtags/gotest:latest
uid: 74c902e5-c42d-4be6-aa96-225c146984b8
tag: null
oc describe istag/gotest:latest
Image Name: sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Docker Image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Name: sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Created: 32 minutes ago
Annotations: image.openshift.io/dockerLayersOrder=ascending
image.openshift.io/manifestBlobStored=true
openshift.io/image.managed=true
Image Size: 848.7MB in 7 layers
Layers: 75.83MB sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606
1.576kB sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21
262.5MB sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58
348.9MB sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03
161.5MB sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242
229B sha256:9fc61af83bfaa157a19efd233c8882562d984024898ec5973ffc13cd78ffc411
413B sha256:bfe65b4d02120f13b2f49e7d477c55628892777cb44938ad8c1f7785e1176aa7
Image Created: 32 minutes ago
Author: <none>
Arch: amd64
Entrypoint: container-entrypoint
Command: /bin/sh -c export GOCACHE=/go/test;go run /go/test/main.go
Working Dir: /go
User: 1001
Exposes Ports: 8080/tcp
Docker Labels: architecture=x86_64
authoritative-source-url=registry.access.redhat.com
build-date=2019-06-28T17:01:37.424877
com.redhat.build-host=cpt-1001.osbs.prod.upshift.rdu2.redhat.com
com.redhat.component=go-toolset-container
com.redhat.license_terms=https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel
description=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
distribution-scope=public
io.k8s.description=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
io.k8s.display-name=Go 1.11.5
io.openshift.build.commit.author=Tomohiro Taguchi \u003ctomotagwork@gmail.com\u003e
io.openshift.build.commit.date=Mon Jul 19 13:29:44 2021 +0900
io.openshift.build.commit.id=1062eb687855f93d36e957a66f32dd7265fb38d8
io.openshift.build.commit.message=modify Dockerfile
io.openshift.build.commit.ref=main
io.openshift.build.name=gotest-1
io.openshift.build.namespace=tomotag-test02
io.openshift.build.source-context-dir=gotest
io.openshift.s2i.scripts-url=image:///usr/libexec/s2i
io.openshift.tags=builder,golang,golang111,rh-golang111,go
io.s2i.scripts-url=image:///usr/libexec/s2i
name=devtools/go-toolset-rhel7
release=18.1561731145
summary=Platform for building and running Go 1.11.5 based applications
url=https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145
vcs-ref=fa805422e711bef17cf49441b80a18a5445e4fda
vcs-type=git
vendor=Red Hat, Inc.
version=1.11.5
Environment: PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
container=oci
SUMMARY=Platform for building and running Go 1.11.5 based applications
DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.
STI_SCRIPTS_URL=image:///usr/libexec/s2i
STI_SCRIPTS_PATH=/usr/libexec/s2i
APP_ROOT=/opt/app-root
HOME=/opt/app-root/src
PLATFORM=el7
BASH_ENV=/opt/app-root/etc/scl_enable
ENV=/opt/app-root/etc/scl_enable
PROMPT_COMMAND=. /opt/app-root/etc/scl_enable
NODEJS_SCL=rh-nodejs10
NAME=golang
VERSION=1.11.5
OPENSHIFT_BUILD_NAME=gotest-1
OPENSHIFT_BUILD_NAMESPACE=tomotag-test02
OPENSHIFT_BUILD_SOURCE=https://github.com/tomotagwork/openshift-test
OPENSHIFT_BUILD_REFERENCE=main
OPENSHIFT_BUILD_COMMIT=1062eb687855f93d36e957a66f32dd7265fb38d8
DeploymentConfig
oc get dc/gotest -o yaml
apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: "2021-07-19T08:02:20Z"
generation: 2
labels:
app: gotest
app.kubernetes.io/component: gotest
app.kubernetes.io/instance: gotest
managedFields:
- apiVersion: apps.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/generated-by: {}
f:labels:
.: {}
f:app: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:spec:
f:replicas: {}
f:selector:
.: {}
f:deploymentconfig: {}
f:strategy:
f:activeDeadlineSeconds: {}
f:rollingParams:
.: {}
f:intervalSeconds: {}
f:maxSurge: {}
f:maxUnavailable: {}
f:timeoutSeconds: {}
f:updatePeriodSeconds: {}
f:type: {}
f:template:
.: {}
f:metadata:
.: {}
f:annotations:
.: {}
f:openshift.io/generated-by: {}
f:creationTimestamp: {}
f:labels:
.: {}
f:deploymentconfig: {}
f:spec:
.: {}
f:containers:
.: {}
k:{"name":"gotest"}:
.: {}
f:imagePullPolicy: {}
f:name: {}
f:ports:
.: {}
k:{"containerPort":8080,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:protocol: {}
f:resources: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
f:dnsPolicy: {}
f:restartPolicy: {}
f:schedulerName: {}
f:securityContext: {}
f:terminationGracePeriodSeconds: {}
manager: oc
operation: Update
time: "2021-07-19T08:02:20Z"
- apiVersion: apps.openshift.io/v1
fieldsType: FieldsV1
fieldsV1:
f:spec:
f:template:
f:spec:
f:containers:
k:{"name":"gotest"}:
f:image: {}
f:triggers: {}
f:status:
f:availableReplicas: {}
f:conditions:
.: {}
k:{"type":"Available"}:
.: {}
f:lastTransitionTime: {}
f:lastUpdateTime: {}
f:message: {}
f:status: {}
f:type: {}
k:{"type":"Progressing"}:
.: {}
f:lastTransitionTime: {}
f:lastUpdateTime: {}
f:message: {}
f:reason: {}
f:status: {}
f:type: {}
f:details:
.: {}
f:causes: {}
f:message: {}
f:latestVersion: {}
f:observedGeneration: {}
f:readyReplicas: {}
f:replicas: {}
f:unavailableReplicas: {}
f:updatedReplicas: {}
manager: openshift-controller-manager
operation: Update
time: "2021-07-19T08:04:17Z"
name: gotest
namespace: tomotag-test02
resourceVersion: "73779293"
selfLink: /apis/apps.openshift.io/v1/namespaces/tomotag-test02/deploymentconfigs/gotest
uid: 2818a1b2-294a-49d1-8ad5-6d38fac401d5
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
deploymentconfig: gotest
strategy:
activeDeadlineSeconds: 21600
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailable: 25%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
deploymentconfig: gotest
spec:
containers:
- image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
imagePullPolicy: Always
name: gotest
ports:
- containerPort: 8080
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
test: false
triggers:
- type: ConfigChange
- imageChangeParams:
automatic: true
containerNames:
- gotest
from:
kind: ImageStreamTag
name: gotest:latest
namespace: tomotag-test02
lastTriggeredImage: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
type: ImageChange
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2021-07-19T08:04:16Z"
lastUpdateTime: "2021-07-19T08:04:16Z"
message: Deployment config has minimum availability.
status: "True"
type: Available
- lastTransitionTime: "2021-07-19T08:04:12Z"
lastUpdateTime: "2021-07-19T08:04:17Z"
message: replication controller "gotest-1" successfully rolled out
reason: NewReplicationControllerAvailable
status: "True"
type: Progressing
details:
causes:
- type: ConfigChange
message: config change
latestVersion: 1
observedGeneration: 2
readyReplicas: 1
replicas: 1
unavailableReplicas: 0
updatedReplicas: 1
oc describe dc/gotest
Name: gotest
Namespace: tomotag-test02
Created: 37 minutes ago
Labels: app=gotest
app.kubernetes.io/component=gotest
app.kubernetes.io/instance=gotest
Annotations: openshift.io/generated-by=OpenShiftNewApp
Latest Version: 1
Selector: deploymentconfig=gotest
Replicas: 1
Triggers: Config, Image(gotest@latest, auto=true)
Strategy: Rolling
Template:
Pod Template:
Labels: deploymentconfig=gotest
Annotations: openshift.io/generated-by: OpenShiftNewApp
Containers:
gotest:
Image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Port: 8080/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Deployment #1 (latest):
Name: gotest-1
Created: 35 minutes ago
Status: Complete
Replicas: 1 current / 1 desired
Selector: deployment=gotest-1,deploymentconfig=gotest
Labels: app.kubernetes.io/component=gotest,app.kubernetes.io/instance=gotest,app=gotest,openshift.io/deployment-config.name=gotest
Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal DeploymentCreated 35m deploymentconfig-controller Created new replication controller "gotest-1" for version 1
ReplicationController
oc get rc/gotest-1 -o yaml
apiVersion: v1
kind: ReplicationController
metadata:
annotations:
openshift.io/deployer-pod.completed-at: 2021-07-19 08:04:16 +0000 UTC
openshift.io/deployer-pod.created-at: 2021-07-19 08:04:09 +0000 UTC
openshift.io/deployer-pod.name: gotest-1-deploy
openshift.io/deployment-config.latest-version: "1"
openshift.io/deployment-config.name: gotest
openshift.io/deployment.phase: Complete
openshift.io/deployment.replicas: "1"
openshift.io/deployment.status-reason: config change
openshift.io/encoded-deployment-config: |
{"kind":"DeploymentConfig","apiVersion":"apps.openshift.io/v1","metadata":{"name":"gotest","namespace":"tomotag-test02","selfLink":"/apis/apps.openshift.io/v1/namespaces/tomotag-test02/deploymentconfigs/gotest","uid":"2818a1b2-294a-49d1-8ad5-6d38fac401d5","resourceVersion":"73779207","generation":2,"creationTimestamp":"2021-07-19T08:02:20Z","labels":{"app":"gotest","app.kubernetes.io/component":"gotest","app.kubernetes.io/instance":"gotest"},"annotations":{"openshift.io/generated-by":"OpenShiftNewApp"},"managedFields":[{"manager":"oc","operation":"Update","apiVersion":"apps.openshift.io/v1","time":"2021-07-19T08:02:20Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:openshift.io/generated-by":{}},"f:labels":{".":{},"f:app":{},"f:app.kubernetes.io/component":{},"f:app.kubernetes.io/instance":{}}},"f:spec":{"f:replicas":{},"f:selector":{".":{},"f:deploymentconfig":{}},"f:strategy":{"f:activeDeadlineSeconds":{},"f:rollingParams":{".":{},"f:intervalSeconds":{},"f:maxSurge":{},"f:maxUnavailable":{},"f:timeoutSeconds":{},"f:updatePeriodSeconds":{}},"f:type":{}},"f:template":{".":{},"f:metadata":{".":{},"f:annotations":{".":{},"f:openshift.io/generated-by":{}},"f:creationTimestamp":{},"f:labels":{".":{},"f:deploymentconfig":{}}},"f:spec":{".":{},"f:containers":{".":{},"k:{\"name\":\"gotest\"}":{".":{},"f:imagePullPolicy":{},"f:name":{},"f:ports":{".":{},"k:{\"containerPort\":8080,\"protocol\":\"TCP\"}":{".":{},"f:containerPort":{},"f:protocol":{}}},"f:resources":{},"f:terminationMessagePath":{},"f:terminationMessagePolicy":{}}},"f:dnsPolicy":{},"f:restartPolicy":{},"f:schedulerName":{},"f:securityContext":{},"f:terminationGracePeriodSeconds":{}}}}}},{"manager":"openshift-controller-manager","operation":"Update","apiVersion":"apps.openshift.io/v1","time":"2021-07-19T08:04:08Z","fieldsType":"FieldsV1","fieldsV1":{"f:spec":{"f:template":{"f:spec":{"f:containers":{"k:{\"name\":\"gotest\"}":{"f:image":{}}}}},"f:triggers":{}},"f:status":{"f:conditions":{".":{},"k:{\"type\":\"Available\"}":{".":{},"f:lastTransitionTime":{},"f:lastUpdateTime":{},"f:message":{},"f:status":{},"f:type":{}}},"f:details":{".":{},"f:causes":{},"f:message":{}},"f:latestVersion":{},"f:observedGeneration":{}}}}]},"spec":{"strategy":{"type":"Rolling","rollingParams":{"updatePeriodSeconds":1,"intervalSeconds":1,"timeoutSeconds":600,"maxUnavailable":"25%","maxSurge":"25%"},"resources":{},"activeDeadlineSeconds":21600},"triggers":[{"type":"ConfigChange"},{"type":"ImageChange","imageChangeParams":{"automatic":true,"containerNames":["gotest"],"from":{"kind":"ImageStreamTag","namespace":"tomotag-test02","name":"gotest:latest"},"lastTriggeredImage":"image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c"}}],"replicas":1,"revisionHistoryLimit":10,"test":false,"selector":{"deploymentconfig":"gotest"},"template":{"metadata":{"creationTimestamp":null,"labels":{"deploymentconfig":"gotest"},"annotations":{"openshift.io/generated-by":"OpenShiftNewApp"}},"spec":{"containers":[{"name":"gotest","image":"image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c","ports":[{"containerPort":8080,"protocol":"TCP"}],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","imagePullPolicy":"Always"}],"restartPolicy":"Always","terminationGracePeriodSeconds":30,"dnsPolicy":"ClusterFirst","securityContext":{},"schedulerName":"default-scheduler"}}},"status":{"latestVersion":1,"observedGeneration":1,"replicas":0,"updatedReplicas":0,"availableReplicas":0,"unavailableReplicas":0,"details":{"message":"config change","causes":[{"type":"ConfigChange"}]},"conditions":[{"type":"Available","status":"False","lastUpdateTime":"2021-07-19T08:02:20Z","lastTransitionTime":"2021-07-19T08:02:20Z","message":"Deployment config does not have minimum availability."}]}}
creationTimestamp: "2021-07-19T08:04:08Z"
generation: 2
labels:
app: gotest
app.kubernetes.io/component: gotest
app.kubernetes.io/instance: gotest
openshift.io/deployment-config.name: gotest
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:availableReplicas: {}
f:fullyLabeledReplicas: {}
f:observedGeneration: {}
f:readyReplicas: {}
f:replicas: {}
manager: kube-controller-manager
operation: Update
time: "2021-07-19T08:04:16Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/deployer-pod.completed-at: {}
f:openshift.io/deployer-pod.created-at: {}
f:openshift.io/deployer-pod.name: {}
f:openshift.io/deployment-config.latest-version: {}
f:openshift.io/deployment-config.name: {}
f:openshift.io/deployment.phase: {}
f:openshift.io/deployment.replicas: {}
f:openshift.io/deployment.status-reason: {}
f:openshift.io/encoded-deployment-config: {}
f:labels:
.: {}
f:app: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:openshift.io/deployment-config.name: {}
f:ownerReferences:
.: {}
k:{"uid":"2818a1b2-294a-49d1-8ad5-6d38fac401d5"}:
.: {}
f:apiVersion: {}
f:blockOwnerDeletion: {}
f:controller: {}
f:kind: {}
f:name: {}
f:uid: {}
f:spec:
f:replicas: {}
f:selector:
.: {}
f:deployment: {}
f:deploymentconfig: {}
f:template:
.: {}
f:metadata:
.: {}
f:annotations:
.: {}
f:openshift.io/deployment-config.latest-version: {}
f:openshift.io/deployment-config.name: {}
f:openshift.io/deployment.name: {}
f:openshift.io/generated-by: {}
f:creationTimestamp: {}
f:labels:
.: {}
f:deployment: {}
f:deploymentconfig: {}
f:spec:
.: {}
f:containers:
.: {}
k:{"name":"gotest"}:
.: {}
f:image: {}
f:imagePullPolicy: {}
f:name: {}
f:ports:
.: {}
k:{"containerPort":8080,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:protocol: {}
f:resources: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
f:dnsPolicy: {}
f:restartPolicy: {}
f:schedulerName: {}
f:securityContext: {}
f:terminationGracePeriodSeconds: {}
manager: openshift-controller-manager
operation: Update
time: "2021-07-19T08:04:17Z"
name: gotest-1
namespace: tomotag-test02
ownerReferences:
- apiVersion: apps.openshift.io/v1
blockOwnerDeletion: true
controller: true
kind: DeploymentConfig
name: gotest
uid: 2818a1b2-294a-49d1-8ad5-6d38fac401d5
resourceVersion: "73779292"
selfLink: /api/v1/namespaces/tomotag-test02/replicationcontrollers/gotest-1
uid: 4fc51573-4601-4439-965a-01720b707bcf
spec:
replicas: 1
selector:
deployment: gotest-1
deploymentconfig: gotest
template:
metadata:
annotations:
openshift.io/deployment-config.latest-version: "1"
openshift.io/deployment-config.name: gotest
openshift.io/deployment.name: gotest-1
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
deployment: gotest-1
deploymentconfig: gotest
spec:
containers:
- image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
imagePullPolicy: Always
name: gotest
ports:
- containerPort: 8080
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
status:
availableReplicas: 1
fullyLabeledReplicas: 1
observedGeneration: 2
readyReplicas: 1
replicas: 1
oc describe rc/gotest-1
Name: gotest-1
Namespace: tomotag-test02
Selector: deployment=gotest-1,deploymentconfig=gotest
Labels: app=gotest
app.kubernetes.io/component=gotest
app.kubernetes.io/instance=gotest
openshift.io/deployment-config.name=gotest
Annotations: openshift.io/deployer-pod.completed-at: 2021-07-19 08:04:16 +0000 UTC
openshift.io/deployer-pod.created-at: 2021-07-19 08:04:09 +0000 UTC
openshift.io/deployer-pod.name: gotest-1-deploy
openshift.io/deployment-config.latest-version: 1
openshift.io/deployment-config.name: gotest
openshift.io/deployment.phase: Complete
openshift.io/deployment.replicas: 1
openshift.io/deployment.status-reason: config change
openshift.io/encoded-deployment-config:
{"kind":"DeploymentConfig","apiVersion":"apps.openshift.io/v1","metadata":{"name":"gotest","namespace":"tomotag-test02","selfLink":"/apis/...
Replicas: 1 current / 1 desired
Pods Status: 1 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: deployment=gotest-1
deploymentconfig=gotest
Annotations: openshift.io/deployment-config.latest-version: 1
openshift.io/deployment-config.name: gotest
openshift.io/deployment.name: gotest-1
openshift.io/generated-by: OpenShiftNewApp
Containers:
gotest:
Image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Port: 8080/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 36m replication-controller Created pod: gotest-1-2g7hz
Pod
oc get pod/gotest-1-2g7hz -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
cni.projectcalico.org/podIP: 172.30.xx.xxx/32
cni.projectcalico.org/podIPs: 172.30.xx.xxx/32
k8s.v1.cni.cncf.io/network-status: |-
[{
"name": "k8s-pod-network",
"ips": [
"172.30.xx.xxx"
],
"default": true,
"dns": {}
}]
k8s.v1.cni.cncf.io/networks-status: |-
[{
"name": "k8s-pod-network",
"ips": [
"172.30.xx.xxx"
],
"default": true,
"dns": {}
}]
openshift.io/deployment-config.latest-version: "1"
openshift.io/deployment-config.name: gotest
openshift.io/deployment.name: gotest-1
openshift.io/generated-by: OpenShiftNewApp
openshift.io/scc: dbb-scc
creationTimestamp: "2021-07-19T08:04:12Z"
generateName: gotest-1-
labels:
deployment: gotest-1
deploymentconfig: gotest
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/deployment-config.latest-version: {}
f:openshift.io/deployment-config.name: {}
f:openshift.io/deployment.name: {}
f:openshift.io/generated-by: {}
f:generateName: {}
f:labels:
.: {}
f:deployment: {}
f:deploymentconfig: {}
f:ownerReferences:
.: {}
k:{"uid":"4fc51573-4601-4439-965a-01720b707bcf"}:
.: {}
f:apiVersion: {}
f:blockOwnerDeletion: {}
f:controller: {}
f:kind: {}
f:name: {}
f:uid: {}
f:spec:
f:containers:
k:{"name":"gotest"}:
.: {}
f:image: {}
f:imagePullPolicy: {}
f:name: {}
f:ports:
.: {}
k:{"containerPort":8080,"protocol":"TCP"}:
.: {}
f:containerPort: {}
f:protocol: {}
f:resources: {}
f:terminationMessagePath: {}
f:terminationMessagePolicy: {}
f:dnsPolicy: {}
f:enableServiceLinks: {}
f:restartPolicy: {}
f:schedulerName: {}
f:securityContext: {}
f:terminationGracePeriodSeconds: {}
manager: kube-controller-manager
operation: Update
time: "2021-07-19T08:04:12Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:cni.projectcalico.org/podIP: {}
f:cni.projectcalico.org/podIPs: {}
manager: calico
operation: Update
time: "2021-07-19T08:04:14Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
f:k8s.v1.cni.cncf.io/network-status: {}
f:k8s.v1.cni.cncf.io/networks-status: {}
manager: multus
operation: Update
time: "2021-07-19T08:04:14Z"
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:conditions:
k:{"type":"ContainersReady"}:
.: {}
f:lastProbeTime: {}
f:lastTransitionTime: {}
f:status: {}
f:type: {}
k:{"type":"Initialized"}:
.: {}
f:lastProbeTime: {}
f:lastTransitionTime: {}
f:status: {}
f:type: {}
k:{"type":"Ready"}:
.: {}
f:lastProbeTime: {}
f:lastTransitionTime: {}
f:status: {}
f:type: {}
f:containerStatuses: {}
f:hostIP: {}
f:phase: {}
f:podIP: {}
f:podIPs:
.: {}
k:{"ip":"172.30.xx.xxx"}:
.: {}
f:ip: {}
f:startTime: {}
manager: kubelet
operation: Update
time: "2021-07-19T08:04:16Z"
name: gotest-1-2g7hz
namespace: tomotag-test02
ownerReferences:
- apiVersion: v1
blockOwnerDeletion: true
controller: true
kind: ReplicationController
name: gotest-1
uid: 4fc51573-4601-4439-965a-01720b707bcf
resourceVersion: "73779282"
selfLink: /api/v1/namespaces/tomotag-test02/pods/gotest-1-2g7hz
uid: b10466ce-bc8b-4359-8188-8f85164cb5d6
spec:
containers:
- image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
imagePullPolicy: Always
name: gotest
ports:
- containerPort: 8080
protocol: TCP
resources: {}
securityContext:
capabilities:
drop:
- KILL
- MKNOD
- SETGID
- SETUID
runAsUser: 1000710000
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-lpxvp
readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
imagePullSecrets:
- name: default-dockercfg-59mpp
nodeName: 10.129.xxx.xx
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
fsGroup: 1000710000
seLinuxOptions:
level: s0:c27,c4
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: default-token-lpxvp
secret:
defaultMode: 420
secretName: default-token-lpxvp
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2021-07-19T08:04:12Z"
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: "2021-07-19T08:04:16Z"
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2021-07-19T08:04:16Z"
status: "True"
type: ContainersReady
- lastProbeTime: null
lastTransitionTime: "2021-07-19T08:04:12Z"
status: "True"
type: PodScheduled
containerStatuses:
- containerID: cri-o://b08987421882fe1cad0ba22df92d6d82e497b5766255200ffd5176939fea7086
image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
imageID: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
lastState: {}
name: gotest
ready: true
restartCount: 0
started: true
state:
running:
startedAt: "2021-07-19T08:04:16Z"
hostIP: 10.129.xxx.xx
phase: Running
podIP: 172.30.xx.xxx
podIPs:
- ip: 172.30.xx.xxx
qosClass: BestEffort
startTime: "2021-07-19T08:04:12Z"
oc describe pod/gotest-1-2g7hz
Name: gotest-1-2g7hz
Namespace: tomotag-test02
Priority: 0
Node: 10.129.xxx.xx/10.129.xxx.xx
Start Time: Mon, 19 Jul 2021 17:04:12 +0900
Labels: deployment=gotest-1
deploymentconfig=gotest
Annotations: cni.projectcalico.org/podIP: 172.30.xx.xxx/32
cni.projectcalico.org/podIPs: 172.30.xx.xxx/32
k8s.v1.cni.cncf.io/network-status:
[{
"name": "k8s-pod-network",
"ips": [
"172.30.xx.xxx"
],
"default": true,
"dns": {}
}]
k8s.v1.cni.cncf.io/networks-status:
[{
"name": "k8s-pod-network",
"ips": [
"172.30.xx.xxx"
],
"default": true,
"dns": {}
}]
openshift.io/deployment-config.latest-version: 1
openshift.io/deployment-config.name: gotest
openshift.io/deployment.name: gotest-1
openshift.io/generated-by: OpenShiftNewApp
openshift.io/scc: dbb-scc
Status: Running
IP: 172.30.xx.xxx
IPs:
IP: 172.30.xx.xxx
Controlled By: ReplicationController/gotest-1
Containers:
gotest:
Container ID: cri-o://b08987421882fe1cad0ba22df92d6d82e497b5766255200ffd5176939fea7086
Image: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Image ID: image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Port: 8080/TCP
Host Port: 0/TCP
State: Running
Started: Mon, 19 Jul 2021 17:04:16 +0900
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-lpxvp (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-lpxvp:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-lpxvp
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 37m default-scheduler Successfully assigned tomotag-test02/gotest-1-2g7hz to 10.129.xxx.xx
Normal AddedInterface 37m multus Add eth0 [172.30.xx.xxx/32]
Normal Pulling 37m kubelet Pulling image "image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c"
Normal Pulled 37m kubelet Successfully pulled image "image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c"
Normal Created 37m kubelet Created container gotest
Normal Started 37m kubelet Started container gotest
Service
oc get svc/gotest -o yaml
apiVersion: v1
kind: Service
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: "2021-07-19T08:02:20Z"
labels:
app: gotest
app.kubernetes.io/component: gotest
app.kubernetes.io/instance: gotest
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:openshift.io/generated-by: {}
f:labels:
.: {}
f:app: {}
f:app.kubernetes.io/component: {}
f:app.kubernetes.io/instance: {}
f:spec:
f:ports:
.: {}
k:{"port":8080,"protocol":"TCP"}:
.: {}
f:name: {}
f:port: {}
f:protocol: {}
f:targetPort: {}
f:selector:
.: {}
f:deploymentconfig: {}
f:sessionAffinity: {}
f:type: {}
manager: oc
operation: Update
time: "2021-07-19T08:02:20Z"
name: gotest
namespace: tomotag-test02
resourceVersion: "73778780"
selfLink: /api/v1/namespaces/tomotag-test02/services/gotest
uid: edef15de-4bc7-4be5-8b34-2c71cc7b0133
spec:
clusterIP: 172.21.xx.xx
ports:
- name: 8080-tcp
port: 8080
protocol: TCP
targetPort: 8080
selector:
deploymentconfig: gotest
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
oc describe svc/gotest
Name: gotest
Namespace: tomotag-test02
Labels: app=gotest
app.kubernetes.io/component=gotest
app.kubernetes.io/instance=gotest
Annotations: openshift.io/generated-by: OpenShiftNewApp
Selector: deploymentconfig=gotest
Type: ClusterIP
IP: 172.21.xx.xx
Port: 8080-tcp 8080/TCP
TargetPort: 8080/TCP
Endpoints: 172.30.xx.xxx:8080
Session Affinity: None
Events: <none>
補足
BuildConfigについて
今回は "Dockerビルド"と呼ばれるやり方でコンテナをOpenShift上にデプロイしています。このやり方はDockerfileを元にOpneShift上でDockerイメージをビルドして、その結果作成されたイメージからコンテナ(Pod)を作成する流れとなります。
すなわち "ビルド"のプロセスが入ることが前回の記事の例と大きく異なる点です。このビルドの処理を管理するために、OpenShift上にBuildConfigというリソースが作成され、これを元にビルド処理が行われます。
oc new-appコマンド実行直後にBuildConfigのログを確認すると、Dockerイメージがビルドされる様子が確認できます。
Build時のログ
# oc logs bc/gotest -f
Cloning "https://github.com/tomotagwork/openshift-test" ...
Commit: 1062eb687855f93d36e957a66f32dd7265fb38d8 (modify Dockerfile)
Author: Tomohiro Taguchi <tomotagwork@gmail.com>
Date: Mon Jul 19 13:29:44 2021 +0900
Replaced Dockerfile FROM image golang:latest
Caching blobs under "/var/cache/blobs".
Pulling image image-registry.openshift-image-registry.svc:5000/openshift/golang@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7 ...
Getting image source signatures
Copying blob sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242
Copying blob sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606
Copying blob sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03
Copying blob sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21
Copying blob sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58
Copying config sha256:2b397b46f0d6f8c0703e32687427247b582896d56ec5130c4ddc64871e49e5ac
Writing manifest to image destination
Storing signatures
Adding transient rw bind mount for /run/secrets/rhsm
STEP 1: FROM image-registry.openshift-image-registry.svc:5000/openshift/golang@sha256:ebfed97ee40d3e38794a12c10587082173e90546d2cb97514d7e42457ec156b7
STEP 2: USER 1001
--> 20a32601c9d
STEP 3: WORKDIR /go
--> ae576cf4be7
STEP 4: RUN mkdir test
--> 4f21b6cf12b
STEP 5: COPY main.go test/
--> fb57df7f07c
STEP 6: EXPOSE 8080
--> 96f4b5cfaad
STEP 7: CMD export GOCACHE=/go/test;go run /go/test/main.go
--> 37e01de498e
STEP 8: ENV "OPENSHIFT_BUILD_NAME"="gotest-1" "OPENSHIFT_BUILD_NAMESPACE"="tomotag-test02" "OPENSHIFT_BUILD_SOURCE"="https://github.com/tomotagwork/openshift-test" "OPENSHIFT_BUILD_REFERENCE"="main" "OPENSHIFT_BUILD_COMMIT"="1062eb687855f93d36e957a66f32dd7265fb38d8"
--> 98015322740
STEP 9: LABEL "io.openshift.build.commit.author"="Tomohiro Taguchi \u003ctomotagwork@gmail.com\u003e" "io.openshift.build.commit.date"="Mon Jul 19 13:29:44 2021 +0900" "io.openshift.build.commit.id"="1062eb687855f93d36e957a66f32dd7265fb38d8" "io.openshift.build.commit.message"="modify Dockerfile" "io.openshift.build.commit.ref"="main" "io.openshift.build.name"="gotest-1" "io.openshift.build.namespace"="tomotag-test02" "io.openshift.build.source-context-dir"="gotest"
STEP 10: COMMIT temp.builder.openshift.io/tomotag-test02/gotest-1:cd5e00d2
--> 3f6c7a3122f
3f6c7a3122f7eca918b1f56884ba5de4b37d4661938aa28475beceae184c32a5
Pushing image image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest:latest ...
Getting image source signatures
Copying blob sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21
Copying blob sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58
Copying blob sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606
Copying blob sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242
Copying blob sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03
Copying blob sha256:62dbd4843ead3d0aed6e22028d28b89684d5d7f7f54077d24d8f4291b3c4d965
Copying blob sha256:21337fe38466c1d0159a08c7a03ceadcb35107202e94d857e7ab39b920d7fe6a
Copying config sha256:3f6c7a3122f7eca918b1f56884ba5de4b37d4661938aa28475beceae184c32a5
Writing manifest to image destination
Storing signatures
Successfully pushed image-registry.openshift-image-registry.svc:5000/tomotag-test02/gotest@sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c
Push successful
また、BuildConfigの定義を見てみると、元になるDockerイメージ、ビルド後のDockerイメージがそれぞれImageStreamTagとして管理されることが分かります。
...
Strategy: Docker
URL: https://github.com/tomotagwork/openshift-test
Ref: main
ContextDir: gotest
Source Secret: github
From Image: ImageStreamTag openshift/golang:latest
Output to: ImageStreamTag gotest:latest
...
元にしているgolangは汎用的なものを使用しているので、元々OpenShift上に取り込まれていたようでネームスペース"openshift"以下のものが参照されています。
OpenShift内部レジストリについて
ビルドされたDockerイメージは一旦OpenShift内にある内部レジストリに保管され、それを元にデプロイが行われることになります。
以下のようにPodmanコマンドなどで内部レジストリにアクセスしてイメージを確認することができます。
内部レジストリ用のrouteを確認
[root@Test05 ~]# oc get route -n openshift-image-registry
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
image-registry image-registry-openshift-image-registry.xxx.containers.appdomain.cloud image-registry 5000-tcp passthrough None
ログイン
[root@Test05 ~]# podman login -u $(oc whoami) -p $(oc whoami -t) --tls-verify=false image-registry-openshift-image-registry.xxx.containers.appdomain.cloud
Login Succeeded!
Seach
[root@Test05 ~]# podman search --tls-verify=false image-registry-openshift-image-registry.xxx.containers.appdomain.cloud/tomotag-test02
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
appdomain.cloud image-registry-openshift-image-registry.xxx.containers.appdomain.cloud/tomotag-test02/gotest 0
inspect
[root@Test05 ~]# skopeo inspect --tls-verify=false docker://image-registry-openshift-image-registry.xxx.containers.appdomain.cloud/tomotag-test02/gotest
{
"Name": "image-registry-openshift-image-registry.xxx.containers.appdomain.cloud/tomotag-test02/gotest",
"Digest": "sha256:599958e2a0f7fd8ca85438f0de258764bd56981d31323fc413be7e7304014f7c",
"RepoTags": [
"latest"
],
"Created": "2021-07-19T08:04:05.603799985Z",
"DockerVersion": "",
"Labels": {
"architecture": "x86_64",
"authoritative-source-url": "registry.access.redhat.com",
"build-date": "2019-06-28T17:01:37.424877",
"com.redhat.build-host": "cpt-1001.osbs.prod.upshift.rdu2.redhat.com",
"com.redhat.component": "go-toolset-container",
"com.redhat.license_terms": "https://www.redhat.com/en/about/red-hat-end-user-license-agreements#rhel",
"description": "Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.",
"distribution-scope": "public",
"io.k8s.description": "Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.",
"io.k8s.display-name": "Go 1.11.5",
"io.openshift.build.commit.author": "Tomohiro Taguchi \\u003ctomotagwork@gmail.com\\u003e",
"io.openshift.build.commit.date": "Mon Jul 19 13:29:44 2021 +0900",
"io.openshift.build.commit.id": "1062eb687855f93d36e957a66f32dd7265fb38d8",
"io.openshift.build.commit.message": "modify Dockerfile",
"io.openshift.build.commit.ref": "main",
"io.openshift.build.name": "gotest-1",
"io.openshift.build.namespace": "tomotag-test02",
"io.openshift.build.source-context-dir": "gotest",
"io.openshift.s2i.scripts-url": "image:///usr/libexec/s2i",
"io.openshift.tags": "builder,golang,golang111,rh-golang111,go",
"io.s2i.scripts-url": "image:///usr/libexec/s2i",
"name": "devtools/go-toolset-rhel7",
"release": "18.1561731145",
"summary": "Platform for building and running Go 1.11.5 based applications",
"url": "https://access.redhat.com/containers/#/registry.access.redhat.com/devtools/go-toolset-rhel7/images/1.11.5-18.1561731145",
"vcs-ref": "fa805422e711bef17cf49441b80a18a5445e4fda",
"vcs-type": "git",
"vendor": "Red Hat, Inc.",
"version": "1.11.5"
},
"Architecture": "amd64",
"Os": "linux",
"Layers": [
"sha256:506b188c0abe2ae3c1561bbff7ce50284de2a241eff5da6f528a3a024871c606",
"sha256:a4d9907173f48ee257a0d6c451d530a2ec4088c38908b2ec48e3bc8dc66c6d21",
"sha256:1d72f48b3d14f64a70c8eb92dff736969b510ddcf2da89fac058c5c03ba41c58",
"sha256:dcc691b92f82cdd39913b5e0015b5b648656608e0b9768aa4907a2420a0bcd03",
"sha256:8a2b38c5dec5b8ce451a3f3a29f9b52803c756a49beb04e04244c66c399ef242",
"sha256:9fc61af83bfaa157a19efd233c8882562d984024898ec5973ffc13cd78ffc411",
"sha256:bfe65b4d02120f13b2f49e7d477c55628892777cb44938ad8c1f7785e1176aa7"
],
"Env": [
"PATH=/opt/app-root/src/bin:/opt/app-root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"container=oci",
"SUMMARY=Platform for building and running Go 1.11.5 based applications",
"DESCRIPTION=Go 1.11.5 available as a container is a base platform for building and running various Go 1.11.5 applications and frameworks. Go is an easy to learn, powerful, statically typed language in the C/C++ tradition with garbage collection, concurrent programming support, and memory safety features.",
"STI_SCRIPTS_URL=image:///usr/libexec/s2i",
"STI_SCRIPTS_PATH=/usr/libexec/s2i",
"APP_ROOT=/opt/app-root",
"HOME=/opt/app-root/src",
"PLATFORM=el7",
"BASH_ENV=/opt/app-root/etc/scl_enable",
"ENV=/opt/app-root/etc/scl_enable",
"PROMPT_COMMAND=. /opt/app-root/etc/scl_enable",
"NODEJS_SCL=rh-nodejs10",
"NAME=golang",
"VERSION=1.11.5",
"OPENSHIFT_BUILD_NAME=gotest-1",
"OPENSHIFT_BUILD_NAMESPACE=tomotag-test02",
"OPENSHIFT_BUILD_SOURCE=https://github.com/tomotagwork/openshift-test",
"OPENSHIFT_BUILD_REFERENCE=main",
"OPENSHIFT_BUILD_COMMIT=1062eb687855f93d36e957a66f32dd7265fb38d8"
]
}