aboutsummaryrefslogtreecommitdiff
path: root/content/logs/2020-12-28-k8s-private-registry.org
blob: d3e1b913c85b6a41dc95b3a6490b437b0ec3e70a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
title:  "K8S private gitlab registry using podman"
date:   2021-12-28
tags: ['kubernetes', 'linux', 'podman', 'gitlab', 'k3s]
---

This is based on [[https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/][Log in to Docker Hub]].
It is just a bit different to use podman

First we should take a look at podman-login man page:

#+BEGIN_SRC bash
man podman login
#+END_SRC

It will give some valueable information like the location of auth.json file.
Now we can login using podman:

#+BEGIN_SRC bash
podman login registry.gitlab.com
#+END_SRC

Then check the ~auth.json~ file located at 
~${XDG_RUNTIME_DIR}/containers/auth.json~ (as described by the manual).

#+BEGIN_SRC bash
cat "${XDG_RUNTIME_DIR}/containers/auth.json"
#+END_SRC

It will print your auth config:

#+BEGIN_SRC json
{
	"auths": {
		"registry.gitlab.com": {
			"auth": "..."
		}
	}
}
#+END_SRC

Now copy that file over to the server and register it in k8s with the following command:

#+BEGIN_SRC bash
kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=auth.json \
    --type=kubernetes.io/dockerconfigjson
#+END_SRC

Once you have created you can list by ~kubectl get secret~:

#+BEGIN_SRC
NAME                                                    TYPE                                  DATA   AGE
regcred                                                 kubernetes.io/dockerconfigjson        1      53s
#+END_SRC