I want to apply this article (Getting any Docker image running in your own OpenShift cluster) for an image from the RedHat Registry. I chose the rhel8/redis-5 image. I am not clear about the steps to be followed.
I tried oc new-app --docker-image=registry.redhat.io/rhel8/redis-5
. This did not work even after copying the Docker configuration details from the RedHat Registry Service account. Is oc new-app
expected to work with images stored outside of Docker Hub?
Next, I tried the OpenShift secret option.
Following the details from Registry Service account to use OpenShift secret, we have to run this command. kubectl create -f chainhead-secret.yml --namespace=NAMESPACEHERE
. Is this what is called as the image pull secret? Is there a oc
command equivalent?
The next step is to update Kubernetes configuration with a yaml
snippet as shown below. Where should it be consumed - oc
, web console, kube-whatever
command, etc?
apiVersion: v1
kind: Pod
metadata:
name: somepod
namespace: all
spec:
containers:
- name: web
image: registry.redhat.io/REPONAME
imagePullSecrets:
- name: some-pull-secret
I am not familiar with OpenShift, however I find some things that might be helpful for you.
Besides of what @Arockiasmy K mentioned in previous answer, the YAML syntax is incorrect. It won't create a pod: spec
must be on the same lever as kind
.
apiVersion: v1
kind: Pod
metadata:
name: somepod
namespace: all
spec:
containers:
- name: web
image: <image>
$ kubectl apply -f <pod-yaml>
Another thing, make sure that you already have namespace
called "all" and remember that secret must be in the same namespaces
as Pod
.
Hope it will help.
You can create the secret using kubectl
as well as oc
. Both works in Openshift.
oc create -f redhat-secret.yml --namespace=NAMESPACEHERE
Ensure that the hostname is registry.redhat.io. You have two ways to attach it to deployment.
oc edit sa default
.