🌳
pt0/deployF/k8sF/initialSetupF/dockreg/docker_registry.mts
4export const getDockerfileCfgMap = ({regConfigName}: {regConfigName: string}) => {
5 return {
6 apiVersion: 'v1',
7 kind: 'ConfigMap',
8 metadata: {
9 name: regConfigName,
10 },
11 data: {
12 'config.yml': `
13version: 0.1
14log:
15fields:
16 service: registry
17storage:
18cache:
19 blobdescriptor: inmemory
20filesystem:
21 rootdirectory: /var/lib/registry
22http:
23addr: :5000
24headers:
25 X-Content-Type-Options: [nosniff]
26health:
27storagedriver:
28 enabled: true
29 interval: 10s
30 threshold: 3
31proxy:
32 remoteurl: https://registry-1.docker.io
33`.trim()
34 }
35 }
38export const getDeploymentTmpl = ({name, htpasswd_secret_name, regConfigName}: {name: string, htpasswd_secret_name: string, regConfigName: string}) => {
39 const pvcname = name
41 return {
42 apiVersion: 'apps/v1',
43 kind: 'Deployment',
44 metadata: {
45 name,
46 labels: {
47 name,
48 },
49 },
50 spec: {
51 selector: {
52 matchLabels: { name }
53 },
54 replicas: 1,
55 template: {
56 metadata: {
57 labels: {
58 name,
59 [deployLabel]: name,
60 }
61 },
62 spec: {
63 priorityClassName: k8CriticalStorClass,
64 containers: [
65 {
66 name: 'registry',
67 image: 'registry:2',
68 imagePullPolicy: 'Always',
69 env: [
70 {
71 name: 'REGISTRY_AUTH',
72 value: 'htpasswd'
73 },
74 {
75 name: 'REGISTRY_AUTH_HTPASSWD_PATH',
76 value: '/auth/htpasswd'
77 },
78 {
79 name: 'REGISTRY_AUTH_HTPASSWD_REALM',
80 value: 'Registry Realm'
81 },
82 {
83 name: 'REGISTRY_HTTP_ADDR',
84 value: '0.0.0.0:80'
85 },
86 {
87 name: 'REGISTRY_STORAGE_DELETE_ENABLED',
88 value: 'true'
89 },
90 {
91 name: 'REGISTRY_HTTP_SECRET',
92 valueFrom: {
93 secretKeyRef: {
94 name,
95 key: 'REGISTRY_HTTP_SECRET'
96 }
97 }
98 },
99 ],
100 ports: [
101 {
102 containerPort: 80
103 }
104 ],
105 volumeMounts: [
106 {
107 mountPath: '/var/lib/registry',
108 name: 'registry-data'
109 },
110 {
111 name: 'htpasswd',
112 mountPath: '/auth',
113 readOnly: true
114 },
115 ]
116 }
117 ],
118 volumes: [
119 {
120 name: 'registry-data',
121 persistentVolumeClaim: {
122 claimName: pvcname
123 }
124 },
125 {
126 name: 'htpasswd',
127 secret: {
128 secretName: htpasswd_secret_name
129 }
130 },
131 {
132 name: regConfigName,
133 configMap: {
134 name: regConfigName
135 }
136 }
137 ]
138 }
139 }
140 }
141 }