]
Fred Bricon commented on JBIDE-22193:
-------------------------------------
I talked to Roland and it's actually more complicated than that. Docker tooling will
need to provide a Registry Authentication extension, OpenShift tooling will need to
provide an extension point so the password sent to docker login is the OpenShift
connection token (token that changes everytime you connect to OpenShift, even with Basic
Auth).
Relying on CLI login output is not really an option
Can't deploy locally built docker images
----------------------------------------
Key: JBIDE-22193
URL:
https://issues.jboss.org/browse/JBIDE-22193
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: openshift
Affects Versions: 4.3.1.Final
Reporter: Fred Bricon
Priority: Blocker
I can't deploy locally built docker images, pushed to the CDK docker registry, to
OpenShift
Trying to adapt the steps from
https://github.com/redhat-developer-tooling/openshift-vagrant#how-to-run-...
to Eclipse, I can't seem to be able to deploy anything
Here's what the CLI generates from
{quote}
eval "$(vagrant service-manager env docker)"
$ oc login 10.1.2.2:8443 -u openshift-dev -p devel
Login successful.
$ oc new-project my-ghost
Now using project "my-ghost" on server "https://10.1.2.2:8443".
$ docker pull ghost
$ docker tag ghost hub.openshift.rhel-cdk.10.1.2.2.xip.io/my-ghost/ghost
$ docker login -u openshift-dev -p `oc whoami -t` -e foo(a)bar.com
hub.openshift.rhel-cdk.10.1.2.2.xip.io
$ docker push hub.openshift.rhel-cdk.10.1.2.2.xip.io/my-ghost/ghost
$ oc new-app --image-stream=ghost --name=ghost
$ oc expose service ghost --hostname=my-ghost-blog.rhel-cdk.10.1.2.2.xip.io
{quote}
Deployment Config
{noformat}
{
"kind" : "DeploymentConfig",
"apiVersion" : "v1",
"metadata" : {
"name" : "ghost",
"namespace" : "my-ghost",
"selfLink" :
"/oapi/v1/namespaces/my-ghost/deploymentconfigs/ghost",
"uid" : "a7dafee5-03c8-11e6-82b7-525400ac6ae1",
"resourceVersion" : "29849",
"creationTimestamp" : "2016-04-16T11:45:02Z",
"labels" : {"app" : "ghost"},
"annotations" : {"openshift.io/generated-by" :
"OpenShiftNewApp"}
},
"spec" : {
"strategy" : {
"type" : "Rolling",
"rollingParams" : {
"updatePeriodSeconds" : 1,
"intervalSeconds" : 1,
"timeoutSeconds" : 600,
"maxUnavailable" : "25%",
"maxSurge" : "25%"
}
},
"triggers" : [
{"type" : "ConfigChange"},
{
"type" : "ImageChange",
"imageChangeParams" : {
"automatic" : true,
"containerNames" : ["ghost"],
"from" : {
"kind" : "ImageStreamTag",
"namespace" : "my-ghost",
"name" : "ghost:latest"
},
"lastTriggeredImage" :
"172.30.178.20:5000/my-ghost/ghost@sha256:80590e45ef133a256906c454c8a20ae5e9b89773f6b452871ecf622001c836e8"
}
}
],
"replicas" : 1,
"selector" : {
"app" : "ghost",
"deploymentconfig" : "ghost"
},
"template" : {
"metadata" : {
"labels" : {
"app" : "ghost",
"deploymentconfig" : "ghost"
},
"annotations" : {
"openshift.io/container.ghost.image.entrypoint" :
"[\"/entrypoint.sh\",\"npm\",\"start\"]",
"openshift.io/generated-by" : "OpenShiftNewApp"
}
},
"spec" : {
"volumes" : [{"name" : "ghost-volume-1"}],
"containers" : [{
"name" : "ghost",
"image" :
"172.30.178.20:5000/my-ghost/ghost@sha256:80590e45ef133a256906c454c8a20ae5e9b89773f6b452871ecf622001c836e8",
"ports" : [{
"containerPort" : 2368,
"protocol" : "TCP"
}],
"volumeMounts" : [{
"name" : "ghost-volume-1",
"mountPath" : "/var/lib/ghost"
}],
"terminationMessagePath" :
"/dev/termination-log",
"imagePullPolicy" : "Always"
}],
"restartPolicy" : "Always",
"terminationGracePeriodSeconds" : 30,
"dnsPolicy" : "ClusterFirst"
}
}
},
"status" : {
"latestVersion" : 1,
"details" : {"causes" : [{"type" :
"ConfigChange"}]}
}
}
{noformat}
Image Stream
{noformat}
{
"kind" : "ImageStream",
"apiVersion" : "v1",
"metadata" : {
"name" : "ghost",
"namespace" : "my-ghost",
"selfLink" :
"/oapi/v1/namespaces/my-ghost/imagestreams/ghost",
"uid" : "98a32494-03c8-11e6-82b7-525400ac6ae1",
"resourceVersion" : "29842",
"creationTimestamp" : "2016-04-16T11:44:37Z",
"annotations" : {"openshift.io/image.dockerRepositoryCheck" :
"2016-04-16T11:44:37Z"}
},
"status" : {
"dockerImageRepository" :
"172.30.178.20:5000/my-ghost/ghost",
"tags" : [{
"tag" : "latest",
"items" : [{
"created" : "2016-04-16T11:44:37Z",
"dockerImageReference" :
"172.30.178.20:5000/my-ghost/ghost@sha256:80590e45ef133a256906c454c8a20ae5e9b89773f6b452871ecf622001c836e8",
"image" :
"sha256:80590e45ef133a256906c454c8a20ae5e9b89773f6b452871ecf622001c836e8"
}]
}]
}
}
{noformat}
When following these steps in Eclipse, no deployment occurs. Going to the web console et
clicking deploy on the Deployment, no image is found to deploy.
{quote}
- Clone
https://github.com/burrsutter/cdk_helloworlds/
- import java/wildflyswarm_helloworld as a Maven Project
- Run a Maven build (Run As > Maven > package)
- Edit Dockerfile: replace `FROM rhel7` with `FROM centos`
- right click on Dockerfile > Run As > Docker Image build
- Select `CDK Server Adapter at localhost` connection
- Repository Name : hub.openshift.rhel-cdk.10.1.2.2.xip.io/fredo/swarm
- from OpenShift explorer, create a fredo project
- In OpenShift explorer, right-click the fredo project and Deploy Docker Image...
- select hub.openshift.rhel-cdk.10.1.2.2.xip.io/fredo/swarm:latest for the image
- swarm as resource name
- click next
- Deployment configuration & scalability page displays, click next
- click add route button, click finish
- resources are created, but no deployment happens
{quote}
Here are the resources created from Eclipse:
Deployment Config
{noformat}
{
"metadata" : {
"name" : "swarm",
"namespace" : "fredo",
"selfLink" :
"/oapi/v1/namespaces/fredo/deploymentconfigs/swarm",
"uid" : "2e9d1df4-03cc-11e6-82b7-525400ac6ae1",
"resourceVersion" : "30206",
"creationTimestamp" : "2016-04-16T12:10:17Z",
"labels" : {"deploymentconfig" : "swarm"},
"annotations" : {"openshift.io/generated-by" :
"jbosstools-openshift"}
},
"spec" : {
"strategy" : {
"type" : "Rolling",
"rollingParams" : {
"updatePeriodSeconds" : 1,
"intervalSeconds" : 1,
"timeoutSeconds" : 600,
"maxUnavailable" : "25%",
"maxSurge" : "25%"
}
},
"triggers" : [
{"type" : "ConfigChange"},
{
"type" : "ImageChange",
"imageChangeParams" : {
"automatic" : true,
"containerNames" : ["swarm"],
"from" : {
"kind" : "ImageStreamTag",
"name" : "swarm:latest"
}
}
}
],
"replicas" : 1,
"selector" : {"deploymentconfig" : "swarm"},
"template" : {
"metadata" : {"labels" : {"deploymentconfig" :
"swarm"}},
"spec" : {
"containers" : [{
"name" : "swarm",
"image" : "fredo/swarm:latest",
"ports" : [{
"name" : "8080-tcp",
"containerPort" : 8080,
"protocol" : "TCP"
}],
"terminationMessagePath" :
"/dev/termination-log",
"imagePullPolicy" : "Always"
}],
"restartPolicy" : "Always",
"terminationGracePeriodSeconds" : 30,
"dnsPolicy" : "ClusterFirst"
}
}
},
"apiVersion" : "v1",
"kind" : "DeploymentConfig"
}
{noformat}
Image Stream
{noformat}
{
"metadata" : {
"name" : "swarm",
"namespace" : "fredo",
"selfLink" : "/oapi/v1/namespaces/fredo/imagestreams/swarm",
"uid" : "2e42dfc8-03cc-11e6-82b7-525400ac6ae1",
"resourceVersion" : "30202",
"creationTimestamp" : "2016-04-16T12:10:16Z",
"annotations" : {"openshift.io/generated-by" :
"jbosstools-openshift"}
},
"spec" : {"dockerImageRepository" :
"hub.openshift.rhel-cdk.10.1.2.2.xip.io/fredo/swarm"},
"status" : {"dockerImageRepository" :
"172.30.178.20:5000/fredo/swarm"},
"apiVersion" : "v1",
"kind" : "ImageStream"
}
{noformat}