Gitlab offers a secure image registry with every repository. Typically when you create a jave .jar file, you want to build a docker image and store it in the registry. Then in order to deploy it, i.e. in Kubernetes, you need to provide authentication.
Here are the steps:
echo -n "<username>:<token>" | base64
PHVzZXJuYW1lPjo8dG9rZW4+
{
"auths":{"gitlab.example.com:5050":
{"username":"username","password":"token",
"auth":"PHVzZXJuYW1lPjo8dG9rZW4+"
}
}
}
and encode it:
cat dockerconfig.json | base64
ewogICAgImF1dGhzIjp7ImdpdGxhYi5leGFtcGxlLmNvbTo1MDUwIjoKICAgICAgeyJ1c2VybmFt
ZSI6InVzZXJuYW1lIiwicGFzc3dvcmQiOiJ0b2tlbiIsCiAgICAgICAiYXV0aCI6IlBIVnpaWEp1
WVcxbFBqbzhkRzlyWlc0KyIKICAgICAgfQogICB9Cn0K
Kind: Secret
apiVersion: v1
metadata:
name: registry-secret
namespace: namespace
data:
.dockerconfigjson: ewogICAgImF1dGhzIjp7ImdpdGxhYi5leGFtcGxlLmNvbTo1MDUwIjoKICAgICAgeyJ1c2VybmFtZSI6InVzZXJuYW1lIiwicGFzc3dvcmQiOiJ0b2tlbiIsCiAgICAgICAiYXV0aCI6IlBIVnpaWEp1WVcxbFBqbzhkRzlyWlc0KyIKICAgICAgfQogICB9Cn0K
type: kubernetes.io/dockerconfigjson
And you are done.