Skip to content

Instantly share code, notes, and snippets.

@david-martin
Last active April 8, 2019 15:52
Show Gist options
  • Save david-martin/d29c1a39b85c2e5ecb3a53b3c84a8f0a to your computer and use it in GitHub Desktop.
Save david-martin/d29c1a39b85c2e5ecb3a53b3c84a8f0a to your computer and use it in GitHub Desktop.
integreatly image freshness check

3Scale image freshness check

zync

Get imagestream & imagestream tag referenced by deployment config

oc get dc/zync -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"amp-zync:latest"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/amp-zync -n 3scale -o json | jq .spec.tags
[
  {
    "annotations": {
      "openshift.io/display-name": "AMP Zync 2.4.0"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.access.redhat.com/3scale-amp24/zync"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "2.4.0",
    "referencePolicy": {
      "type": "Source"
    }
  },
  {
    "annotations": {
      "openshift.io/display-name": "AMP Zync (latest)"
    },
    "from": {
      "kind": "ImageStreamTag",
      "name": "2.4.0"
    },
    "generation": 1,
    "importPolicy": {},
    "name": "latest",
    "referencePolicy": {
      "type": "Source"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.access.redhat.com/3scale-amp24/zync | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
b076c2a84c46264feecb7be1d9554c8e92221078a144cfe34411537f557c4373

Get sha of image in use in cluster

oc get dc/zync -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
b076c2a84c46264feecb7be1d9554c8e92221078a144cfe34411537f557c4373

apicast-wildcard

Get imagestream & imagestream tag referenced by deployment config

oc get dc/apicast-wildcard-router -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"amp-wildcard-router:latest"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/amp-wildcard-router -n 3scale -o json | jq .spec.tags
[
  {
    "annotations": {
      "openshift.io/display-name": "AMP APIcast Wildcard Router 2.4.0"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.access.redhat.com/3scale-amp22/wildcard-router"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "2.4.0",
    "referencePolicy": {
      "type": "Source"
    }
  },
  {
    "annotations": {
      "openshift.io/display-name": "AMP APIcast Wildcard Router (latest)"
    },
    "from": {
      "kind": "ImageStreamTag",
      "name": "2.4.0"
    },
    "generation": 1,
    "importPolicy": {},
    "name": "latest",
    "referencePolicy": {
      "type": "Source"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.access.redhat.com/3scale-amp22/wildcard-router | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
140d78f2018803e6b44c27b9a675165c9fbfb75946fd9388d8d46d6e1eee967a

Get sha of image in use in cluster

oc get dc/apicast-wildcard-router -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
140d78f2018803e6b44c27b9a675165c9fbfb75946fd9388d8d46d6e1eee967a

apicast-production/apicast-staging

Get imagestream & imagestream tag referenced by deployment config

oc get dc/apicast-production -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"amp-apicast:latest"
oc get dc/apicast-staging -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"amp-apicast:latest"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/amp-apicast -n 3scale -o json | jq .spec.tags
[
  {
    "annotations": {
      "openshift.io/display-name": "AMP APIcast 2.4.0"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.access.redhat.com/3scale-amp24/apicast-gateway"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "2.4.0",
    "referencePolicy": {
      "type": "Source"
    }
  },
  {
    "annotations": {
      "openshift.io/display-name": "AMP APIcast (latest)"
    },
    "from": {
      "kind": "ImageStreamTag",
      "name": "2.4.0"
    },
    "generation": 1,
    "importPolicy": {},
    "name": "latest",
    "referencePolicy": {
      "type": "Source"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.access.redhat.com/3scale-amp24/apicast-gateway | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
76bebff9f4fb5c360974950e4977a710d18ca3ecee6a0dad9abf507ccd6f5f34

Get sha of image in use in cluster

oc get dc/apicast-production -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
76bebff9f4fb5c360974950e4977a710d18ca3ecee6a0dad9abf507ccd6f5f34

backend

Get imagestream & imagestream tag referenced by deployment config

oc get dc/backend-cron -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
oc get dc/backend-listener -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
oc get dc/backend-worker -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"amp-backend:latest"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/amp-backend -n 3scale -o json | jq .spec.tags
[
  {
    "annotations": {
      "openshift.io/display-name": "amp-backend 2.4.0"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.access.redhat.com/3scale-amp24/backend"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "2.4.0",
    "referencePolicy": {
      "type": "Source"
    }
  },
  {
    "annotations": {
      "openshift.io/display-name": "amp-backend (latest)"
    },
    "from": {
      "kind": "ImageStreamTag",
      "name": "2.4.0"
    },
    "generation": 1,
    "importPolicy": {},
    "name": "latest",
    "referencePolicy": {
      "type": "Source"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.access.redhat.com/3scale-amp24/backend | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
b001e0586f93083927681cebebfd0a0606d13a21b449233440314c67f27faa80

Get sha of image in use in cluster

oc get dc/backend-cron -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
oc get dc/backend-listener -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
oc get dc/backend-worker -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
b001e0586f93083927681cebebfd0a0606d13a21b449233440314c67f27faa80

system

Get imagestream & imagestream tag referenced by deployment config

oc get dc/system-app -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
oc get dc/system-sidekiq -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
oc get dc/system-sphinx -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"amp-system:latest"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/amp-system -n 3scale -o json | jq .spec.tags
[
  {
    "annotations": {
      "openshift.io/display-name": "AMP system 2.4.0"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.access.redhat.com/3scale-amp24/system"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "2.4.0",
    "referencePolicy": {
      "type": "Source"
    }
  },
  {
    "annotations": {
      "openshift.io/display-name": "AMP System (latest)"
    },
    "from": {
      "kind": "ImageStreamTag",
      "name": "2.4.0"
    },
    "generation": 1,
    "importPolicy": {},
    "name": "latest",
    "referencePolicy": {
      "type": "Source"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.access.redhat.com/3scale-amp24/system | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
9fa48adc31112256c016d2d6dc5263438bf362f07cbe9972e064adfb566b9b45

Get sha of image in use in cluster

oc get dc/system-app -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
oc get dc/system-sidekiq -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
oc get dc/system-sphinx -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
9fa48adc31112256c016d2d6dc5263438bf362f07cbe9972e064adfb566b9b45

Postgres

Get imagestream & imagestream tag referenced by deployment config

oc get dc/zync-database -n 3scale -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"postgresql:9.5"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/postgresql -n 3scale -o json | jq .spec.tags
[
  {
    "annotations": null,
    "from": {
      "kind": "DockerImage",
      "name": "registry.access.redhat.com/rhscl/postgresql-95-rhel7:9.5"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "9.5",
    "referencePolicy": {
      "type": "Source"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.access.redhat.com/rhscl/postgresql-95-rhel7:9.5 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
01498b02dd010331b25d1b46ba14a07a19105c872ae98a861817354ca09708a0

Get sha of image in use in cluster

oc get dc/zync-database -n 3scale --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
01498b02dd010331b25d1b46ba14a07a19105c872ae98a861817354ca09708a0

System/Backend Redis (NOT USING IMAGE STREAM)

Get image & tag referenced in deploymentconfig

oc get dc/system-redis -n 3scale -o json | jq '.spec.template.spec.containers[0] | .image'
oc get dc/backend-redis -n 3scale -o json | jq '.spec.template.spec.containers[0] | .image'
"registry.access.redhat.com/rhscl/redis-32-rhel7:3.2"

Get sha of image in the remote registry

./crane manifest "registry.access.redhat.com/rhscl/redis-32-rhel7:3.2" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
4da060f880d1f10b496cf727e6624deb24e787b10ffea3fa996181b85468b7a9

Get sha (1?) of image running in cluster

oc get po -l "3scale.component-element=redis,3scale.component=system" -n 3scale -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
oc get po -l "3scale.component-element=redis,3scale.component=backend" -n 3scale -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
1e8895320a3813b272795c273029c02239a81899d70bcfed955ac879b4543b97

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.access.redhat.com/rhscl/redis-32-rhel7@sha256:1e8895320a3813b272795c273029c02239a81899d70bcfed955ac879b4543b97" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
4da060f880d1f10b496cf727e6624deb24e787b10ffea3fa996181b85468b7a9

Mysql (NOT USING IMAGE STREAM)

Get image & tag referenced in deploymentconfig

oc get dc/system-mysql -n 3scale -o json | jq '.spec.template.spec.containers[0] | .image'
"registry.access.redhat.com/rhscl/mysql-57-rhel7:5.7"

Get sha of image in the remote registry

./crane manifest "registry.access.redhat.com/rhscl/mysql-57-rhel7:5.7" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
09737e2cc6b29303155b8c8c4ecb6298dbf51e051473f8d3d465c083717b8c3a

Get sha (1?) of image running in cluster

oc get po -l "3scale.component-element=mysql" -n 3scale -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
d72be6fc03c851650b9b641442f88f74645e58c76c7749fba2767eb0cb2aa45a"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.access.redhat.com/rhscl/mysql-57-rhel7@sha256:d72be6fc03c851650b9b641442f88f74645e58c76c7749fba2767eb0cb2aa45a" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
09737e2cc6b29303155b8c8c4ecb6298dbf51e051473f8d3d465c083717b8c3a

Memcache (NOT USING IMAGE STREAM)

Get image & tag referenced in deploymentconfig

oc get dc/system-memcache -n 3scale -o json | jq '.spec.template.spec.containers[0] | .image'
"registry.access.redhat.com/3scale-amp20/memcached"

Get sha of image in the remote registry

./crane manifest "registry.access.redhat.com/3scale-amp20/memcached" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
74ddf8b9de7cd9b8cdd8a56d8c863b88e6536f020beda287594e65ebef3f7dbb

Get sha (1?) of image running in cluster

oc get po -l "3scale.component-element=memcache" -n 3scale -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
8e44a537e915377d17a7cdcefac5f53aca660ca5c91503e8710cd1460dbea83b"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.access.redhat.com/3scale-amp20/memcached@sha256:8e44a537e915377d17a7cdcefac5f53aca660ca5c91503e8710cd1460dbea83b" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
74ddf8b9de7cd9b8cdd8a56d8c863b88e6536f020beda287594e65ebef3f7dbb

AMQ Online image freshness check

Postgres

Get imagestream & imagestream tag referenced by deployment config

oc get dc/postgresql -n enmasse -o json | jq '.spec.triggers[] | select(.type == "ImageChange") | .imageChangeParams.from.name'
"postgresql:9.6"

Get image for imagestream tag, keeping in mind the imagestream tag may reference another imagestream tag

oc get is/postgresql -n openshift -o json | jq .spec.tags
[
  {
    "annotations": {
      "description": "Provides a PostgreSQL 10 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/generated/10/root/usr/share/container-scripts/postgresql/README.md.",
      "iconClass": "icon-postgresql",
      "openshift.io/display-name": "PostgreSQL (Ephemeral) 10",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "tags": "database,postgresql",
      "version": "10"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.redhat.io/rhscl/postgresql-10-rhel7:latest"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "10",
    "referencePolicy": {
      "type": "Local"
    }
  },
  {
    "annotations": {
      "description": "Provides a PostgreSQL 9.2 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.2/README.md.",
      "iconClass": "icon-postgresql",
      "openshift.io/display-name": "PostgreSQL 9.2",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "tags": "hidden,postgresql",
      "version": "9.2"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.redhat.io/openshift3/postgresql-92-rhel7:latest"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "9.2",
    "referencePolicy": {
      "type": "Local"
    }
  },
  {
    "annotations": {
      "description": "Provides a PostgreSQL 9.4 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/tree/master/9.4/README.md.",
      "iconClass": "icon-postgresql",
      "openshift.io/display-name": "PostgreSQL 9.4",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "tags": "hidden,database,postgresql",
      "version": "9.4"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.redhat.io/rhscl/postgresql-94-rhel7:latest"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "9.4",
    "referencePolicy": {
      "type": "Local"
    }
  },
  {
    "annotations": {
      "description": "Provides a PostgreSQL 9.5 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/generated/9.5/root/usr/share/container-scripts/postgresql/README.md.",
      "iconClass": "icon-postgresql",
      "openshift.io/display-name": "PostgreSQL 9.5",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "tags": "database,postgresql",
      "version": "9.5"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.redhat.io/rhscl/postgresql-95-rhel7:latest"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "9.5",
    "referencePolicy": {
      "type": "Local"
    }
  },
  {
    "annotations": {
      "description": "Provides a PostgreSQL 9.6 database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/generated/9.6/root/usr/share/container-scripts/postgresql/README.md.",
      "iconClass": "icon-postgresql",
      "openshift.io/display-name": "PostgreSQL (Ephemeral) 9.6",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "tags": "database,postgresql",
      "version": "9.6"
    },
    "from": {
      "kind": "DockerImage",
      "name": "registry.redhat.io/rhscl/postgresql-96-rhel7:latest"
    },
    "generation": 2,
    "importPolicy": {},
    "name": "9.6",
    "referencePolicy": {
      "type": "Local"
    }
  },
  {
    "annotations": {
      "description": "Provides a PostgreSQL database on RHEL 7. For more information about using this database image, including OpenShift considerations, see https://github.com/sclorg/postgresql-container/blob/generated/10/root/usr/share/container-scripts/postgresql/README.md.\n\nWARNING: By selecting this tag, your application will automatically update to use the latest version of PostgreSQL available on OpenShift, including major versions updates.",
      "iconClass": "icon-postgresql",
      "openshift.io/display-name": "PostgreSQL (Latest)",
      "openshift.io/provider-display-name": "Red Hat, Inc.",
      "tags": "database,postgresql"
    },
    "from": {
      "kind": "ImageStreamTag",
      "name": "10"
    },
    "generation": 1,
    "importPolicy": {},
    "name": "latest",
    "referencePolicy": {
      "type": "Local"
    }
  }
]

Get sha of image being referenced by the imagestream tag, in the remote registry

./crane manifest registry.redhat.io/rhscl/postgresql-96-rhel7:latest | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
6e40707a46de19f6a0e51e9bfad6921cfde51cf074931654a5d2439410f58dc7

Get sha of image in use in cluster

oc get dc/postgresql -n enmasse --template '{{(index .spec.template.spec.containers 0).image}}' | awk '{n=split($1,A,":"); print A[n]}'
6e40707a46de19f6a0e51e9bfad6921cfde51cf074931654a5d2439410f58dc7

address-space-controller (NOT USING IMAGE STREAMS)

Get image & tag referenced in deploymentconfig

oc get deployment/address-space-controller -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq7/amq-online-1-address-space-controller:1.0"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq7/amq-online-1-address-space-controller:1.0 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
df6b9c92cfe9ab8eb83b806375380f9bd0445aed699e3b117ecd487528fa3aa6

Get sha (1?) of image running in cluster

oc get po -l "name=address-space-controller" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
e82268046570289c612c88e42af919b445eec8f70b05989972b48dc41fd9e092"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq7/amq-online-1-address-space-controller@sha256:e82268046570289c612c88e42af919b445eec8f70b05989972b48dc41fd9e092" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
df6b9c92cfe9ab8eb83b806375380f9bd0445aed699e3b117ecd487528fa3aa6

api-server (NOT USING IMAGE STREAMS)

Get image & tag referenced in deploymentconfig

oc get deployment/api-server -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq7/amq-online-1-api-server:1.0"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq7/amq-online-1-api-server:1.0 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
ca53a9d0afbdd032a848b1ab60dcdca403849f96806830e32c00a5f6278aa4c1

Get sha (1?) of image running in cluster

oc get po -l "component=api-server" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
ac5572a4a548a82e40809f57f8aa1563d24c6312d23af63fd260464332557fdb"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq7/amq-online-1-api-server@sha256:ac5572a4a548a82e40809f57f8aa1563d24c6312d23af63fd260464332557fdb" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
ca53a9d0afbdd032a848b1ab60dcdca403849f96806830e32c00a5f6278aa4c1

keycloak (NOT USING IMAGE STREAMS)

Get image & tag referenced in deploymentconfig

oc get deployment/keycloak -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"redhat-sso-7/sso72-openshift:latest"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/redhat-sso-7/sso72-openshift:latest | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
546f88359bd04303535f6a8ea6372fea5e26bc9d7781a5ebc6c7ec335bc6dd46

Get sha (1?) of image running in cluster

oc get po -l "name=keycloak" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
252cea60534ffe4a7c0106cb2b4b3d233c284acaf5a3e562d78fb5b14972b11f"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/redhat-sso-7/sso72-openshift@sha256:252cea60534ffe4a7c0106cb2b4b3d233c284acaf5a3e562d78fb5b14972b11f" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
546f88359bd04303535f6a8ea6372fea5e26bc9d7781a5ebc6c7ec335bc6dd46

keycloak-controller (NOT USING IMAGE STREAMS)

Get image & tag referenced in deploymentconfig

oc get deployment/keycloak-controller -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq7/amq-online-1-auth-controller:1.0"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq7/amq-online-1-auth-controller:1.0 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
2cfde5ff28c0ad2f6b2d0956731a781e192daa9d53b171d60851765845acdf1b

Get sha (1?) of image running in cluster

oc get po -l "name=keycloak-controller" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
8ce8f25961653b1ee6046a6c245b56b9279c5fa2b01c758e2812b722b46771ad"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq7/amq-online-1-auth-controller@sha256:8ce8f25961653b1ee6046a6c245b56b9279c5fa2b01c758e2812b722b46771ad" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
2cfde5ff28c0ad2f6b2d0956731a781e192daa9d53b171d60851765845acdf1b

service-broker (NOT USING IMAGE STREAMS)

Get image & tag referenced in deploymentconfig

oc get deployment/service-broker -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq7/amq-online-1-service-broker:1.0"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq7/amq-online-1-service-broker:1.0 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
493297f1f588945edb2f30c83dcecde32e41523631f4a23cf1127cdb9b6cbc1c

Get sha (1?) of image running in cluster

oc get po -l "component=service-broker" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
00b43386773479fee80adb254653f6b5a84a46b5444839778a4fe25c18c72d5b"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq7/amq-online-1-service-broker@sha256:00b43386773479fee80adb254653f6b5a84a46b5444839778a4fe25c18c72d5b" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
493297f1f588945edb2f30c83dcecde32e41523631f4a23cf1127cdb9b6cbc1c

agent (NOT USING IMAGE STREAMS, 1 PER ADDRESS SPACE)

Get image & tag referenced in deploymentconfig

oc get deployment/agent.0b6phaav1s -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq7/amq-online-1-agent:1.0"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq7/amq-online-1-agent:1.0 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
8841b5ec9a5c6f6a2e782101cdca753fe44d009b33574efb200972abd7decb98

Get sha (1?) of image running in cluster

oc get po -l "role=agent" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
881d589eec8c3bc87d2f9f2531990acbe623e04a839bca61e000d9ddb495f3c6"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq7/amq-online-1-agent@sha256:881d589eec8c3bc87d2f9f2531990acbe623e04a839bca61e000d9ddb495f3c6" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
8841b5ec9a5c6f6a2e782101cdca753fe44d009b33574efb200972abd7decb98

broker (NOT USING IMAGE STREAMS, 1 PER BROKER ADDRESS SPACE)

Get image & tag referenced in deploymentconfig

oc get deployment/broker.0b6phaav1s -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq-broker-7/amq-broker-72-openshift:latest"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq-broker-7/amq-broker-72-openshift:latest | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
68dd356c8006cb60081254fa7daf99cc274d68db124f4d018772d38a4d593030

Get sha (1?) of image running in cluster

oc get po -l "role=broker" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[0] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
580d500baa2e1dbf5a53b89baf333af8d8da61798484d47b503245d34e018389"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq-broker-7/amq-broker-72-openshift@sha256:580d500baa2e1dbf5a53b89baf333af8d8da61798484d47b503245d34e018389" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
68dd356c8006cb60081254fa7daf99cc274d68db124f4d018772d38a4d593030

admin (NOT USING IMAGE STREAMS, ? PER STANDARD ADDRESS SPACE)

Get image & tag referenced in deploymentconfig

oc get deployment/admin.f26hvhhmiy -n enmasse -o json | jq '.spec.template.spec.containers[0] | .image'
"amq7/amq-online-1-standard-controller:1.0"

Get sha of image in the remote registry

./crane manifest registry.redhat.io/amq7/amq-online-1-standard-controller:1.0 | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
26d3e4169bd9ad53d84e86f2b0905cbaccff2b2eca832d55540357bb933634ad

Get sha (1?) of image running in cluster

oc get po -l "name=admin" -n enmasse -o json | jq '.items[0] | .status.containerStatuses[1] | .imageID' | awk '{n=split($1,A,":"); print A[n]}'
3b1eabbe38ad308ea9a5f995ef03ac32bc7752a978fc3d5ef1d80396096c01bb"

Get sha of image in the remote registry based on the sha reported by the cluster

./crane manifest "registry.redhat.io/amq7/amq-online-1-standard-controller@sha256:3b1eabbe38ad308ea9a5f995ef03ac32bc7752a978fc3d5ef1d80396096c01bb" | jq -r '.manifests[0] | .digest' | awk '{n=split($1,A,":"); print A[n]}'
26d3e4169bd9ad53d84e86f2b0905cbaccff2b2eca832d55540357bb933634ad
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment