Open djzager opened 6 years ago
In the downstream environment, APB Dockerfiles are structured differently than "normal" (after APB init). Where normal looks something like:
LABEL "com.redhat.apb.spec"=\ "ENCODED_SPEC_LINE1\ ...\ LAST_ENCODED_SPEC_LINE"
The downstream environment has multiple labels declared using a single LABEL directive like:
LABEL \ com.redhat.component="openshift-enterprise-mysql-apb" \ com.redhat.apb.spec="ALL_ENCODED_SPEC_ONE_LINE" \ version="v3.9.0" \ vendor="Red Hat" \ name="openshift3/mysql-apb" \ License="GPLv2+" \ release="0.16.0.0"
This causes some trouble when using apb prepare. See the example below.
apb prepare
$ cat openshift-enterprise-mysql/Dockerfile FROM openshift3/apb-base:v3.9.0.20180103.170133 MAINTAINER Ansible Playbook Bundle Community RUN yum-config-manager --enable rhel-7-server-ose-3.7-rpms || : && \ yum -y install mysql-apb-role USER apb LABEL \ com.redhat.component="openshift-enterprise-mysql-apb" \ com.redhat.apb.spec="LS0tCiMjIFNoYXJlZCBwYXJhbWV0ZXJzCl9wYXJhbXM6ICZfcGFyYW1zCiAgLSBuYW1lOiBzZXJ2aWNlX25hbWUKICAgIGRlc2NyaXB0aW9uOiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZS4gVXNlZCB0byBuYW1lIGFuZCBsYWJlbCByZXNvdXJjZXMKICAgIHR5cGU6IHN0cmluZwogICAgZGVmYXVsdDogbXlzcWwKICAgIHJlcXVpcmVkOiB0cnVlCiAgLSBuYW1lOiBteXNxbF92ZXJzaW9uCiAgICBkZXNjcmlwdGlvbjogVmVyc2lvbiBvZiBNeVNRTCB0byBkZXBsb3kKICAgIHR5cGU6IGVudW0KICAgIGVudW06IFsiNS42IiwgIjUuNyJdCiAgICBkZWZhdWx0OiAiNS43IgogICAgcmVxdWlyZWQ6IHRydWUKICAtIG5hbWU6IG15c3FsX2RhdGFiYXNlCiAgICBkZXNjcmlwdGlvbjogVGhlIG5hbWUgb2YgdGhlIE15U1FMIGRhdGFiYXNlCiAgICB0eXBlOiBzdHJpbmcKICAgIGRlZmF1bHQ6IGRldmVsCiAgICByZXF1aXJlZDogdHJ1ZQogIC0gbmFtZTogbXlzcWxfdXNlcgogICAgZGVzY3JpcHRpb246IFVzZXJuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gTXlTUUwKICAgIHR5cGU6IHN0cmluZwogICAgZGVmYXVsdDogZGV2ZWwKICAgIHJlcXVpcmVkOiB0cnVlCiAgLSBuYW1lOiBteXNxbF9wYXNzd29yZAogICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIHRvIGNvbm5lY3QgdG8gTXlTUUwgKGdlbmVyYXRlZCBpZiBibGFuaykKICAgIHR5cGU6IHN0cmluZwogICAgcmVxdWlyZWQ6IGZhbHNlCiAgICBkaXNwbGF5X3R5cGU6IHBhc3N3b3JkCgp2ZXJzaW9uOiAxLjAKbmFtZTogbXlzcWwtYXBiCmRlc2NyaXB0aW9uOiAiU29mdHdhcmUgQ29sbGVjdGlvbnMgTXlTUUwgQVBCIgpiaW5kYWJsZTogdHJ1ZQphc3luYzogb3B0aW9uYWwKdGFnczoKICAtIGRhdGFiYXNlcwogIC0gbXlzcWwKbWV0YWRhdGE6CiAgZGlzcGxheU5hbWU6ICJNeVNRTCAoQVBCKSIKICBsb25nRGVzY3JpcHRpb246ICJBbiBBbnNpYmxlIFBsYXlib29rIEJ1bmRsZSAoQVBCKSB0aGF0IGRlcGxveXMgTXlTUUwiCiAgY29uc29sZS5vcGVuc2hpZnQuaW8vaWNvbkNsYXNzOiBpY29uLW15c3FsLWRhdGFiYXNlCiAgZG9jdW1lbnRhdGlvblVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2xvcmcvbXlzcWwtY29udGFpbmVyLyIKICBkZXBlbmRlbmNpZXM6CiAgICAtICdyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS9yaHNjbC9teXNxbC01Ni1yaGVsNycKICAgIC0gJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3Joc2NsL215c3FsLTU3LXJoZWw3JwogIHByb3ZpZGVyRGlzcGxheU5hbWU6ICJSZWQgSGF0LCBJbmMuIgpwbGFuczoKICAtIG5hbWU6IGRldgogICAgZGVzY3JpcHRpb246IEEgTXlTUUwgc2VydmVyIHdpdGggZXBoZW1lcmFsIHN0b3JhZ2UKICAgIGZyZWU6IHRydWUKICAgIGRlZmF1bHQ6IHRydWUKICAgIG1ldGFkYXRhOgogICAgICBkaXNwbGF5TmFtZTogRGV2ZWxvcG1lbnQKICAgICAgbG9uZ0Rlc2NyaXB0aW9uOiBUaGlzIHBsYW4gcHJvdmlkZXMgYSBzaW5nbGUgbm9uLUhBIE15U1FMIHNlcnZlciB3aXRob3V0IHBlcnNpc3RlbnQgc3RvcmFnZQogICAgICBjb3N0OiAkMC4wMAogICAgcGFyYW1ldGVyczogKl9wYXJhbXMKICAtIG5hbWU6IHByb2QKICAgIGRlc2NyaXB0aW9uOiBBIE15U1FMIHNlcnZlciB3aXRoIHBlcnNpc3RlbnQgc3RvcmFnZQogICAgZnJlZTogZmFsc2UKICAgIG1ldGFkYXRhOgogICAgICBkaXNwbGF5TmFtZTogUHJvZHVjdGlvbgogICAgICBsb25nRGVzY3JpcHRpb246IFRoaXMgcGxhbiBwcm92aWRlcyBhIHNpbmdsZSBub24tSEEgTXlTUUwgc2VydmVyIHdpdGggMTAgR2lCIG9mIHBlcnNpc3RlbnQgc3RvcmFnZQogICAgICBjb3N0OiAkNS45OSBtb250aGx5CiAgICBwYXJhbWV0ZXJzOiAqX3BhcmFtcwo=" \ version="v3.9.0" \ vendor="Red Hat" \ name="openshift3/mysql-apb" \ License="GPLv2+" \ release="0.16.0.0"
$ cat openshift-enterprise-mysql/Dockerfile FROM openshift3/apb-base:v3.9.0.20180103.170133 MAINTAINER Ansible Playbook Bundle Community RUN yum-config-manager --enable rhel-7-server-ose-3.7-rpms || : && \ yum -y install mysql-apb-role USER apb LABEL \ com.redhat.component="openshift-enterprise-mysql-apb" \ com.redhat.apb.spec="LS0tCiMjIFNoYXJlZCBwYXJhbWV0ZXJzCl9wYXJhbXM6ICZfcGFyYW1zCiAgLSBuYW1lOiBzZXJ2aWNlX25hbWUKICAgIGRlc2NyaXB0aW9uOiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZS4gVXNlZCB0byBuYW1lIGFuZCBsYWJlbCByZXNvdXJjZXMKICAgIHR5cGU6IHN0cmluZwogICAgZGVmYXVsdDogbXlzcWwKICAgIHJlcXVpcmVkOiB0cnVlCiAgLSBuYW1lOiBteXNxbF92ZXJzaW9uCiAgICBkZXNjcmlwdGlvbjogVmVyc2lvbiBvZiBNeVNRTCB0byBkZXBsb3kKICAgIHR5cGU6IGVudW0KICAgIGVudW06IFsiNS42IiwgIjUuNyJdCiAgICBkZWZhdWx0OiAiNS43IgogICAgcmVxdWlyZWQ6IHRydWUKICAtIG5hbWU6IG15c3FsX2RhdGFiYXNlCiAgICBkZXNjcmlwdGlvbjogVGhlIG5hbWUgb2YgdGhlIE15U1FMIGRhdGFiYXNlCiAgICB0eXBlOiBzdHJpbmcKICAgIGRlZmF1bHQ6IGRldmVsCiAgICByZXF1aXJlZDogdHJ1ZQogIC0gbmFtZTogbXlzcWxfdXNlcgogICAgZGVzY3JpcHRpb246IFVzZXJuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gTXlTUUwKICAgIHR5cGU6IHN0cmluZwogICAgZGVmYXVsdDogZGV2ZWwKICAgIHJlcXVpcmVkOiB0cnVlCiAgLSBuYW1lOiBteXNxbF9wYXNzd29yZAogICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIHRvIGNvbm5lY3QgdG8gTXlTUUwgKGdlbmVyYXRlZCBpZiBibGFuaykKICAgIHR5cGU6IHN0cmluZwogICAgcmVxdWlyZWQ6IGZhbHNlCiAgICBkaXNwbGF5X3R5cGU6IHBhc3N3b3JkCgp2ZXJzaW9uOiAxLjAKbmFtZTogbXlzcWwtYXBiCmRlc2NyaXB0aW9uOiAiU29mdHdhcmUgQ29sbGVjdGlvbnMgTXlTUUwgQVBCIgpiaW5kYWJsZTogdHJ1ZQphc3luYzogb3B0aW9uYWwKdGFnczoKICAtIGRhdGFiYXNlcwogIC0gbXlzcWwKbWV0YWRhdGE6CiAgZGlzcGxheU5hbWU6ICJNeVNRTCAoQVBCKSIKICBsb25nRGVzY3JpcHRpb246ICJBbiBBbnNpYmxlIFBsYXlib29rIEJ1bmRsZSAoQVBCKSB0aGF0IGRlcGxveXMgTXlTUUwiCiAgY29uc29sZS5vcGVuc2hpZnQuaW8vaWNvbkNsYXNzOiBpY29uLW15c3FsLWRhdGFiYXNlCiAgZG9jdW1lbnRhdGlvblVybDogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2xvcmcvbXlzcWwtY29udGFpbmVyLyIKICBkZXBlbmRlbmNpZXM6CiAgICAtICdyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS9yaHNjbC9teXNxbC01Ni1yaGVsNycKICAgIC0gJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3Joc2NsL215c3FsLTU3LXJoZWw3JwogIHByb3ZpZGVyRGlzcGxheU5hbWU6ICJSZWQgSGF0LCBJbmMuIgpwbGFuczoKICAtIG5hbWU6IGRldgogICAgZGVzY3JpcHRpb246IEEgTXlTUUwgc2VydmVyIHdpdGggZXBoZW1lcmFsIHN0b3JhZ2UKICAgIGZyZWU6IHRydWUKICAgIGRlZmF1bHQ6IHRydWUKICAgIG1ldGFkYXRhOgogICAgICBkaXNwbGF5TmFtZTogRGV2ZWxvcG1lbnQKICAgICAgbG9uZ0Rlc2NyaXB0aW9uOiBUaGlzIHBsYW4gcHJvdmlkZXMgYSBzaW5nbGUgbm9uLUhBIE15U1FMIHNlcnZlciB3aXRob3V0IHBlcnNpc3RlbnQgc3RvcmFnZQogICAgICBjb3N0OiAkMC4wMAogICAgcGFyYW1ldGVyczogKl9wYXJhbXMKICAtIG5hbWU6IHByb2QKICAgIGRlc2NyaXB0aW9uOiBBIE15U1FMIHNlcnZlciB3aXRoIHBlcnNpc3RlbnQgc3RvcmFnZQogICAgZnJlZTogZmFsc2UKICAgIG1ldGFkYXRhOgogICAgICBkaXNwbGF5TmFtZTogUHJvZHVjdGlvbgogICAgICBsb25nRGVzY3JpcHRpb246IFRoaXMgcGxhbiBwcm92aWRlcyBhIHNpbmdsZSBub24tSEEgTXlTUUwgc2VydmVyIHdpdGggMTAgR2lCIG9mIHBlcnNpc3RlbnQgc3RvcmFnZQogICAgICBjb3N0OiAkNS45OSBtb250aGx5CiAgICBwYXJhbWV0ZXJzOiAqX3BhcmFtcwo=" \ "LS0tCiMjIFNoYXJlZCBwYXJhbWV0ZXJzCl9wYXJhbXM6ICZfcGFyYW1zCiAgLSBuYW1lOiBzZXJ2\ aWNlX25hbWUKICAgIGRlc2NyaXB0aW9uOiBUaGUgbmFtZSBvZiB0aGUgc2VydmljZS4gVXNlZCB0\ byBuYW1lIGFuZCBsYWJlbCByZXNvdXJjZXMKICAgIHR5cGU6IHN0cmluZwogICAgZGVmYXVsdDog\ bXlzcWwKICAgIHBhdHRlcm46ICJeW2EtekEtWjAtOV0rW2EtekEtWjAtOS1dKlthLXpBLVowLTld\ KyQiCiAgICByZXF1aXJlZDogdHJ1ZQogIC0gbmFtZTogbXlzcWxfdmVyc2lvbgogICAgZGVzY3Jp\ cHRpb246IFZlcnNpb24gb2YgTXlTUUwgdG8gZGVwbG95CiAgICB0eXBlOiBlbnVtCiAgICBlbnVt\ OiBbIjUuNiIsICI1LjciXQogICAgZGVmYXVsdDogIjUuNyIKICAgIHJlcXVpcmVkOiB0cnVlCiAg\ ICB1cGRhdGFibGU6IHRydWUKICAtIG5hbWU6IG15c3FsX2RhdGFiYXNlCiAgICBkZXNjcmlwdGlv\ bjogVGhlIG5hbWUgb2YgdGhlIE15U1FMIGRhdGFiYXNlCiAgICB0eXBlOiBzdHJpbmcKICAgIGRl\ ZmF1bHQ6IGRldmVsCiAgICBwYXR0ZXJuOiAiXlthLXpBLVowLTlfXSpbYS16QS1aX10rW2EtekEt\ WjAtOV9dKiQiCiAgICByZXF1aXJlZDogdHJ1ZQogIC0gbmFtZTogbXlzcWxfdXNlcgogICAgZGVz\ Y3JpcHRpb246IFVzZXJuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNvbm5lY3QgdG8gTXlTUUwK\ ICAgIHR5cGU6IHN0cmluZwogICAgZGVmYXVsdDogZGV2ZWwKICAgIHBhdHRlcm46ICJeW2EtekEt\ WjAtOV9dKlthLXpBLVpfXStbYS16QS1aMC05X10qJCIKICAgIHJlcXVpcmVkOiB0cnVlCiAgLSBu\ YW1lOiBteXNxbF9wYXNzd29yZAogICAgZGVzY3JpcHRpb246IFBhc3N3b3JkIHRvIGNvbm5lY3Qg\ dG8gTXlTUUwgKGdlbmVyYXRlZCBpZiBibGFuaykKICAgIHR5cGU6IHN0cmluZwogICAgcmVxdWly\ ZWQ6IGZhbHNlCiAgICBkaXNwbGF5X3R5cGU6IHBhc3N3b3JkCgp2ZXJzaW9uOiAxLjAKbmFtZTog\ bXlzcWwtYXBiCmRlc2NyaXB0aW9uOiAiU29mdHdhcmUgQ29sbGVjdGlvbnMgTXlTUUwgQVBCIgpi\ aW5kYWJsZTogdHJ1ZQphc3luYzogb3B0aW9uYWwKdGFnczoKICAtIGRhdGFiYXNlCiAgLSBteXNx\ bAptZXRhZGF0YToKICBkaXNwbGF5TmFtZTogIk15U1FMIChBUEIpIgogIGxvbmdEZXNjcmlwdGlv\ bjogIkFuIEFuc2libGUgUGxheWJvb2sgQnVuZGxlIChBUEIpIHRoYXQgZGVwbG95cyBNeVNRTCIK\ ICBjb25zb2xlLm9wZW5zaGlmdC5pby9pY29uQ2xhc3M6IGljb24tbXlzcWwtZGF0YWJhc2UKICBk\ b2N1bWVudGF0aW9uVXJsOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjbG9yZy9teXNxbC1jb250YWlu\ ZXIvIgogIGRlcGVuZGVuY2llczoKICAgIC0gJ3JlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3Jo\ c2NsL215c3FsLTU2LXJoZWw3JwogICAgLSAncmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vcmhz\ Y2wvbXlzcWwtNTctcmhlbDcnCiAgcHJvdmlkZXJEaXNwbGF5TmFtZTogIlJlZCBIYXQsIEluYy4i\ CnBsYW5zOgogIC0gbmFtZTogZGV2CiAgICBkZXNjcmlwdGlvbjogQSBNeVNRTCBzZXJ2ZXIgd2l0\ aCBlcGhlbWVyYWwgc3RvcmFnZQogICAgZnJlZTogdHJ1ZQogICAgZGVmYXVsdDogdHJ1ZQogICAg\ bWV0YWRhdGE6CiAgICAgIGRpc3BsYXlOYW1lOiBEZXZlbG9wbWVudAogICAgICBsb25nRGVzY3Jp\ cHRpb246IFRoaXMgcGxhbiBwcm92aWRlcyBhIHNpbmdsZSBub24tSEEgTXlTUUwgc2VydmVyIHdp\ dGhvdXQgcGVyc2lzdGVudCBzdG9yYWdlCiAgICAgIGNvc3Q6ICQwLjAwCiAgICB1cGRhdGVzX3Rv\ OgogICAgICAtIHByb2QKICAgIHBhcmFtZXRlcnM6ICpfcGFyYW1zCiAgLSBuYW1lOiBwcm9kCiAg\ ICBkZXNjcmlwdGlvbjogQSBNeVNRTCBzZXJ2ZXIgd2l0aCBwZXJzaXN0ZW50IHN0b3JhZ2UKICAg\ IGZyZWU6IGZhbHNlCiAgICBtZXRhZGF0YToKICAgICAgZGlzcGxheU5hbWU6IFByb2R1Y3Rpb24K\ ICAgICAgbG9uZ0Rlc2NyaXB0aW9uOiBUaGlzIHBsYW4gcHJvdmlkZXMgYSBzaW5nbGUgbm9uLUhB\ IE15U1FMIHNlcnZlciB3aXRoIDEwIEdpQiBvZiBwZXJzaXN0ZW50IHN0b3JhZ2UKICAgICAgY29z\ dDogJDUuOTkgbW9udGhseQogICAgcGFyYW1ldGVyczogKl9wYXJhbXMKICAgIHVwZGF0ZXNfdG86\ CiAgICAgIC0gZGV2Cg=="
In the downstream environment, APB Dockerfiles are structured differently than "normal" (after APB init). Where normal looks something like:
The downstream environment has multiple labels declared using a single LABEL directive like:
This causes some trouble when using
apb prepare
. See the example below.Before
After