jbossdemocentral / coolstore-microservice

CoolStore is a containerised polyglot microservices application consisting of services based on JBoss, NodeJS, Spring Boot, WildFly Swarm, Vert.x, Netflix OSS and more running on OpenShift
299 stars 324 forks source link

Question about imagestreams in troubleshooting #58

Open gbraad opened 7 years ago

gbraad commented 7 years ago

Before being able to deploy the application, several imagestreams need to be available. For instance on minishift this is needed before being able to build. In the troubleshooting I see:

$ oc login -u system:admin
$ oc create -n openshift -f 'https://raw.githubusercontent.com/jboss-openshift/application-templates/master/jboss-image-streams.json'
$ oc create -n openshift -f 'https://raw.githubusercontent.com/openshift/openshift-ansible/master/roles/openshift_examples/files/examples/v1.3/image-streams/image-streams-rhel7.json'

But this seems to be wrong. The last templates defines a lot of same imagestreams as the first file, and it also misses:

I had to use:

$ oc login -u system:admin
$ oc create -n openshift -f 'https://raw.githubusercontent.com/jboss-openshift/application-templates/master/jboss-image-streams.json'
$ oc create -n openshift -f 'https://raw.githubusercontent.com/jboss-fuse/application-templates/master/fis-image-streams.json'

Note: I think we need a blessed location for the imagestream templates. WDYT?

tqvarnst commented 7 years ago

Hi, AFAIK these are the blessed location for templates and there are no overlap between the the two (not sure why you think they define the same imagestreams).

I'm however not sure why we are not defining a imagestream for fis-java-openshift and how this has slip through all our tests.

@siamaksade can you have a look if we should add the fis-image-streams.json to the README.md

/ Thomas

gbraad commented 7 years ago

@tqvarnst on a clean deployment of Minishift, I run:

oc create -n openshift -f 'https://raw.githubusercontent.com/jboss-openshift/application-templates/master/jboss-image-streams.json'
oc create -n openshift -f 'https://raw.githubusercontent.com/openshift/openshift-ansible/master/roles/openshift_examples/files/examples/v1.3/image-streams/image-streams-rhel7.json'
imagestream "jboss-webserver30-tomcat7-openshift" created
imagestream "jboss-webserver30-tomcat8-openshift" created
imagestream "jboss-eap64-openshift" created
imagestream "jboss-eap70-openshift" created
imagestream "jboss-decisionserver62-openshift" created
imagestream "jboss-decisionserver63-openshift" created
imagestream "jboss-processserver63-openshift" created
imagestream "jboss-datagrid65-openshift" created
imagestream "jboss-datagrid65-client-openshift" created
imagestream "jboss-datavirt63-openshift" created
imagestream "jboss-datavirt63-driver-openshift" created
imagestream "jboss-amq-62" created
imagestream "redhat-sso70-openshift" created
imagestream "redhat-sso71-openshift" created
imagestream "redhat-openjdk18-openshift" created
Error from server (AlreadyExists): imagestreams "ruby" already exists
Error from server (AlreadyExists): imagestreams "nodejs" already exists
Error from server (AlreadyExists): imagestreams "perl" already exists
Error from server (AlreadyExists): imagestreams "php" already exists
Error from server (AlreadyExists): imagestreams "python" already exists
Error from server (AlreadyExists): imagestreams "mysql" already exists
Error from server (AlreadyExists): imagestreams "mariadb" already exists
Error from server (AlreadyExists): imagestreams "postgresql" already exists
Error from server (AlreadyExists): imagestreams "mongodb" already exists
Error from server (AlreadyExists): imagestreams "redis" already exists
Error from server (AlreadyExists): imagestreams "jenkins" already exists

This is what I meant with overlap. But as you see, this does not include fuse. In Minishift we have to get them as follows: https://github.com/minishift/minishift/tree/master/addons/fuse-templates

We do not consider them as official in the jboss-openshift templates... or should we?

tqvarnst commented 7 years ago

This is because minishift and OCP already has these images. Streams. That's why the README says to first delete them.

oc login -u system:admin oc delete -n openshift -f 'https://raw.githubusercontent.com/jboss-openshift/application-templates/master/jboss-image-streams.json' oc delete -n openshift -f 'https://raw.githubusercontent.com/openshift/openshift-ansible/master/roles/openshift_examples/files/examples/v1.3/image-streams/image-streams-rhel7.json' oc create -n openshift -f 'https://raw.githubusercontent.com/jboss-openshift/application-templates/master/jboss-image-streams.json' oc create -n openshift -f 'https://raw.githubusercontent.com/openshift/openshift-ansible/master/roles/openshift_examples/files/examples/v1.3/image-streams/image-streams-rhel7.json'

DuncanDoyle commented 7 years ago

Still, the FIS one is missing. I had that problem as well and had to create the ImageStreams from that file "https://raw.githubusercontent.com/jboss-fuse/application-templates/master/fis-image-streams.json" as well.

I think this was both on OpenShift Origin 1.5 and OCP 3.5.

We need to document this somewhere (and probably not in the Troubleshooting section of the README, because it seems to be a mandatory step in the setup process).

tqvarnst commented 7 years ago

I've added the FIS imagestream to the troubleshooting section for now.

ImageStreams in OpenShift are typically provided by an administrator of the environment and when you are rolling your own environment like with CDK, minishift etc then you are required to install these. However if you are using OCP then you might not even have sufficient rights to install these.

My suggestions is that we add a bullet in the pre-requisite with a link to a page that explains how to install the imagestream definitions. Additionally we could extend the provision-script to check if they are available.

@DuncanDoyle If you agree then we can close this and open a new issue to improve the installation process (which should also remove the instructions to use the template).

siamaksade commented 7 years ago

+1 for adding the imagestreams to the pre-reqs docs as well as looking into adding them during the provisioning

gbraad commented 7 years ago

OK

We currently run this automated in CentOS CI using Minishift: https://ci.centos.org/job/minishift-pr/1167/ (part of the issue: https://github.com/minishift/minishift/pull/986)

we will likely move away from using the imagestreams as currently documented.