Skip to content

Manual deployment with ImageStream fails (sometimes) #16728

@rhuss

Description

@rhuss

When using a manual deployment with oc rollout latest ... on a DC which has not been initialized (e.g. with its container's spec pointing to an empty image: ' ' and having image change triggers).

This happens in the following situations:

  • When having auto set to false or true (does not have any effect), it happens always when the manual deployment is first
  • Always when the manual deployment kicks in before the trigger deployment
Version
$ oc version
oc v1.5.0+031cbe4
kubernetes v1.5.2+43a9be4
features: Basic-Auth

Server https://192.168.64.11:8443
openshift v3.6.0+c4dd4cf
kubernetes v1.6.1+5115d708d7

$ minishift version
minishift v1.6.0+7a71565
Steps To Reproduce
  • Create a DC with an image trigger setting auto to false:
oc describe dc fck
Name:		fck
Namespace:	myproject
Created:	2 minutes ago
Labels:		syndesis.io/revision-id=2
Annotations:	USERNAME=developer
Latest Version:	Not deployed
Selector:	integration=fck
Replicas:	1
Triggers:	Config, Image(fck@latest, auto=false)
Strategy:	Rolling
Template:
  Labels:	integration=fck
  Containers:
   fck:
    Image:
    Port:	8778/TCP
    Volume Mounts:
      /deployments/config from secret-volume (rw)
    Environment Variables:	<none>
  Volumes:
   secret-volume:
    Type:	Secret (a volume populated by a Secret)
    SecretName:	fck

Latest Deployment:	<none>

No events.

Triggers look like:

  triggers:
  - type: ConfigChange
  - imageChangeParams:
      containerNames:
      - fck
      from:
        kind: ImageStreamTag
        name: fck:latest
        namespace: myproject
    type: ImageChange

ImageStream is

apiVersion: v1
kind: ImageStream
metadata:
  creationTimestamp: 2017-10-06T17:49:05Z
  generation: 1
  name: fck
  namespace: myproject
  resourceVersion: "6222"
  selfLink: /oapi/v1/namespaces/myproject/imagestreams/fck
  uid: a598734d-aabe-11e7-80dd-9a3aa9bfc000
spec: {}
status:
  dockerImageRepository: 172.30.1.1:5000/myproject/fck
  tags:
  - items:
    - created: 2017-10-06T17:50:56Z
      dockerImageReference: 172.30.1.1:5000/myproject/fck@sha256:205eae2dd5dd69d361f8a1e4fe03366670cb9f4ffffddb8b3d9c25e386a72b35
      generation: 1
      image: sha256:205eae2dd5dd69d361f8a1e4fe03366670cb9f4ffffddb8b3d9c25e386a72b35
    tag: latest
  • Then when doing a oc rollout latest fck
Events:
  FirstSeen	LastSeen	Count	From				SubObjectPath	Type		Reason				Message
  ---------	--------	-----	----				-------------	--------	------				-------
  3m		3m		14	{deploymentconfig-controller }			Warning		DeploymentCreationFailed	Couldn't deploy version 1: ReplicationController "fck-1" is invalid: spec.template.spec.containers[0].image: Required value
  2m		2m		11	{deploymentconfig-controller }			Warning		DeploymentCreationFailed	Couldn't deploy version 2: ReplicationController "fck-2" is invalid: spec.template.spec.containers[0].image: Required value```
Current Result

The strange thing is, that it oc rollout sometimes work, sometimes not. E.g. when I run oc rollout right after a build it seems to work. If I use another tool to do the deployment (like the fabric8 openshift Java client) which fails, then oc rollout fails, too, afterwards (with the error above). But the DC just looks the same (and has not changed)

Expected Result
  • A manual deployment should do the same as a trigger deployment: Copy over the ImageStreamImage reference of the ImageStreamTag specified in the trigger, if the image name is not yet initialised.

Metadata

Metadata

Assignees

Labels

component/appskind/bugCategorizes issue or PR as related to a bug.lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.priority/P2

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions