Martin Povolny

View on GitHub

Creating deployments/deployments config

Using s2i image with a repo, branch, context dir and a build-env variable:

oc new-app --as-deployment-config --name cool-app \
> --build-env npm_config_registry=http://npm.company.com/repository/nodejs \
> nodejs:12~https://github.com/martinpovolny/cool-app#feature-branch \
> --context-dir app

Configmaps

Creating similar to secrets:

oc create configmap <name> --from-literal=key=value --from-file=file

Setting to Deployment/DC same as secrets:

oc set volume <dc> --add -t configmap -m </mount/path> --name <vol.name> --configmap-name=<cm>

oc set env <depl/dc> --from comfigmap/<my_cm>

Rollouts

Stop: oc set triggers dc/dc_name --from-config --remove

Manual: oc rollout latest <dc_name>

Start again: oc set triggers dc/dc_name --from-config

Pull secrets

oc create secret generic quayio --type kubernetes.io/dockerconfigjson --from-file=.dockerconfigjson=${XDG_RUNTIME_DIR}/containers/auth.json
oc secrets link default <secret> --for pull

Allowing access cross project

See https://docs.openshift.com/container-platform/4.5/openshift_images/managing_images/using-image-pull-secrets.html

Access for pods in project-a to access project-b’s images:

oc policy add-role-to-user system:image-puller system:serviceaccount:project-a:default --namespace=project-b

Access for any SA in project-a to access project-b’s images:

oc policy add-role-to-group system:image-puller system:serviceaccounts:project-a --namespace=project-b

Build Hooks

See https://docs.openshift.com/container-platform/4.5/builds/triggering-builds-build-hooks.html

Use the postCommit section of BuildConfig or:

oc set build-hook bc/mybc --post-commit --command -- <command>