Skip to content

Instantly share code, notes, and snippets.

@flyemsafe
Last active November 15, 2019 15:49
Show Gist options
  • Save flyemsafe/603b4c9d897b18038b7bf80a1c2d776e to your computer and use it in GitHub Desktop.
Save flyemsafe/603b4c9d897b18038b7bf80a1c2d776e to your computer and use it in GitHub Desktop.
Satellite 6 Product with OpenShift container repos
## Create Red Hat Container Catalog
### Helper Function
```
sync_container_repos () {
REPOS_LIST=$1
CONTAINER_REPOS="$(mktemp)"
echo hammer --output csv repository list --organization $ORG --product="'$PRODUCT'"|sh | awk -F',' '/docker/ {print $2}' > $CONTAINER_REPOS
while read repo;
do
getlabel=$(echo $repo|sed 's#/#-#')
label="container-${getlabel}"
name="Container $getlabel"
upstream_name="$repo"
RESULT=$(echo grep -q "'$name'" $CONTAINER_REPOS|sh; echo $?)
if [ $RESULT -eq 1 ];
then
echo hammer repository create --organization "$ORG" --name="'$name'" --label="$label" --product="'$PRODUCT'" --content-type="$PRODUCT_REPO_TYPE" --publish-via-http=true --url="$PRODUCT_REPO_URL" --docker-upstream-name="'$upstream_name'"|sh
fi
done<$REPOS_LIST
while read repo;
do
getlabel=$(echo $repo|sed 's#/#-#')
label="container-${getlabel}"
name="Container $getlabel"
echo "Checking if $name needs syncing"
RESULT=$(echo hammer repository info --organization "$ORG" --product "'$PRODUCT'" --name "'$name'"|sh | awk '/Status:/ {print $2}')
if [ "$RESULT" != "Success" ];
then
echo hammer repository synchronize --organization "$ORG" --product "'$PRODUCT'" --name "'$name'"|sh
fi
done<$REPOS_LIST
}
```
### Setup Environment Variables
```
PRODUCT="Red Hat Container Catalog"
PRODUCT_REPO_NAME="Red Hat Container Images"
PRODUCT_REPO_TYPE="docker"
PRODUCT_REPO_URL="http://registry.access.redhat.com/"
OCP_INSTALLATION_CONTAINERS="$(mktemp)"
cat > $OCP_INSTALLATION_CONTAINERS <<EOF
openshift3/ose-ansible
openshift3/ose-web-console
openshift3/ose-cluster-capacity
openshift3/ose-deployer
openshift3/ose-docker-builder
openshift3/oauth-proxy
openshift3/ose-docker-registry
openshift3/ose-egress-http-proxy
openshift3/ose-egress-router
openshift3/ose-f5-router
openshift3/ose-haproxy-router
openshift3/ose-keepalived-ipfailover
openshift3/ose-pod
openshift3/ose-sti-builder
openshift3/container-engine
openshift3/node
openshift3/openvswitch
rhel7/etcd
openshift3/ose-recycler
EOF
OCP_LOGGING_METRICS="$(mktemp)"
cat > $OCP_LOGGING_METRICS <<EOF
openshift3/logging-auth-proxy
openshift3/logging-curator
openshift3/logging-elasticsearch
openshift3/logging-fluentd
openshift3/logging-kibana
openshift3/metrics-cassandra
openshift3/metrics-hawkular-metrics
openshift3/metrics-hawkular-openshift-agent
openshift3/metrics-heapster
openshift3/prometheus
openshift3/prometheus-alert-buffer
openshift3/prometheus-alertmanager
openshift3/prometheus-node-exporter
cloudforms46/cfme-openshift-postgresql
cloudforms46/cfme-openshift-memcached
cloudforms46/cfme-openshift-app-ui
cloudforms46/cfme-openshift-app
cloudforms46/cfme-openshift-embedded-ansible
cloudforms46/cfme-openshift-httpd
cloudforms46/cfme-httpd-configmap-generator
rhgs3/rhgs-server-rhel7
rhgs3/rhgs-volmanager-rhel7
rhgs3/rhgs-gluster-block-prov-rhel7
rhgs3/rhgs-s3-server-rhel7
EOF
OCP_BROKERS_CATALOGS="$(mktemp)"
cat > $OCP_BROKERS_CATALOGS <<EOF
openshift3/ose-service-catalog
openshift3/ose-ansible-service-broker
openshift3/mediawiki-apb
openshift3/postgresql-apb
EOF
```
### Create custom project and sync repos
```
hammer product create --name="$PRODUCT" --organization "$ORG"
sync_container_repos $OCP_INSTALLATION_CONTAINERS
sync_container_repos $OCP_LOGGING_METRICS
sync_container_repos $OCP_BROKERS_CATALOGS
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment