Unable to pull from Gitlab Container Registry unless set to Everyone With Access

1k Views Asked by At

I am working on building a simple pipeline with Gitlab. I'm using Minikube on my laptop and I've installed gitlab-runner using helm on the same namespace of the application I'm trying to deploy. I've not installed Gitlab on Minikube, I'm using Gitlab.com.

Anyway, after a lot of attempts, the deployment was successful and the application was deployed but failed because it can't pull the image from the registry.gitlab.com. The error is repository does not exist or may require 'docker login': denied: requested access to the resource is denied

I've also logged in successfully with docker login registry.gitlab.com -u username -p pwd but I can't pull the image, same error as above.

I've created secrets according to the documentation. Here's my deployment file

apiVersion: v1
kind: Secret
metadata:
  name: registry-credentials
  namespace: {{ .Values.applicationName }}
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: ..hidden..
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.applicationName }}
  namespace: {{ .Values.applicationName }}
spec:
  replicas: 1
  selector:
    matchLabels:
      app: {{ .Values.applicationName }}
  template:
    metadata:
      labels:
        app: {{ .Values.applicationName }}
    spec:
      containers:
        - name: {{ .Values.applicationName }}
          image: registry.gitlab.com/gfalco77/maverick:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 8001
      imagePullSecrets:
        - name: registry-credentials
---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.applicationName }}
spec:
  ports:
    - name: {{ .Values.applicationName }}
      port: 8001
      targetPort: 8001
      protocol: TCP
  selector:
    app: {{ .Values.applicationName }}

I've also created the deploy token with read_registry.

Project visibility is already Public but container registry was set to 'Only Project Members'

Only way I can make it work is to change the permissions of the container registry to Everyone With Access. Is this obvious or it can also be done with permissions 'Only project members'?

Thanks

0

There are 0 best solutions below