Come utilizzare l’OCI Container registry in OKE

Giovanni Tuttolomondo
OCI for Dev
Published in
2 min readApr 23, 2024

All’interno dell’articolo Come utilizzare l’OCI Container Registry per creare e conservare le proprie immagini docker abbiamo visto come è facile creare un repository d’immagini per i nostri container in OCI.

In questo tutorial invece vedremo come richiemare le immagini presenti all’interno di OCIR per i nostri deployment in OKE (ORacle Kubernetes Engine).

Il primo step da fare è quello di creare un secret all’interno di OKE che contenga username e password dell’utenza tecnica che abbia i permessi per leggere e scrivere sul repo.

E’ possibile recuperare la username dell’utente direttamente dal servizio OCI IAM. Dal menù principale basta abdare in Identity and Security →Identity →Domains →Defaults →Users

Selezionando l’utente creato a questo scopo sarà possibile visualizzare il nome utente sul campo username:

La password associata sarà invece il contenuto authentication token dell’utente, che è possibile creare dalla pagina utente:

A questo punto recuperate le credenziali dell’utenza tecnica creare il secret su OKE attraverso il seguente comando:

kubectl create secret docker-registry ocirsecret --docker-server=lin.ocir.io --docker-username=<nome utente> --docker-password='<authentication token>T' --docker-email=<mail associata all'utente> -n <namespace applicativo>

Il nome del secret creato e l’indirizzo dell’OCIR repository dovranno a questo punto essere referenziati all’interno del file di Deployment del nostro microservizio come nell’esempio seguente:

apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment name>
namespace: <namespace dell'applicazione>
labels:
app: <label app name>
spec:
minReadySeconds: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 75%
replicas: 2
selector:
matchLabels:
app: <label app name>
template:
metadata:
labels:
app: <label app name>
spec:
containers:
- name: <container name>
image: lin.ocir.io/<tenancy namespace>/image-repo/nginx:2.0
ports:
- containerPort: 80
- containerPort: 81
imagePullSecrets:
- name: ocirsecret

DISCLAIMER: Le opinioni e i punti di vista espressi in questo post sono esclusivamente miei e non rappresentano in alcun modo le posizioni, le strategie o le opinioni dell’organizzazione per cui lavoro o con cui sono associato. Questo post è stato scritto e pubblicato a titolo personale.

--

--

Giovanni Tuttolomondo
OCI for Dev

Cloud Architect, always curious to learn and test new technologies. I’m passionate about OCI, infrastructure automation, and blockchain.