registry is working!!
This commit is contained in:
parent
2fb1980e28
commit
c9864124e1
6 changed files with 431 additions and 0 deletions
24
registry-ui/config.yml
Normal file
24
registry-ui/config.yml
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
version: 0.1
|
||||||
|
log:
|
||||||
|
fields:
|
||||||
|
service: registry
|
||||||
|
storage:
|
||||||
|
cache:
|
||||||
|
blobdescriptor: inmemory
|
||||||
|
filesystem:
|
||||||
|
rootdirectory: /var/lib/registry
|
||||||
|
http:
|
||||||
|
addr: :5000
|
||||||
|
headers:
|
||||||
|
X-Content-Type-Options: [nosniff]
|
||||||
|
Access-Control-Allow-Origin: ["http://registry-ui.wayl.one"]
|
||||||
|
Access-Control-Allow-Methods: ["HEAD", "GET", "OPTIONS", "DELETE"]
|
||||||
|
Access-Control-Expose-Headers: ["Docker-Content-Digest"]
|
||||||
|
Access-Control-Allow-Credentials: [true]
|
||||||
|
Access-Control-Allow-Headers: ["Accept", "Authorization", "Content-Type", "Access-Control-Allow-Headers", "X-Requested-With"]
|
||||||
|
Access-Control-Max-Age: [1728000]
|
||||||
|
health:
|
||||||
|
storagedriver:
|
||||||
|
enabled: true
|
||||||
|
interval: 10s
|
||||||
|
threshold: 3
|
||||||
269
registry-ui/deployment.yaml
Normal file
269
registry-ui/deployment.yaml
Normal file
|
|
@ -0,0 +1,269 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.service.expose: registry.wayl.one
|
||||||
|
kompose.service.type: loadbalancer
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry-server-tcp
|
||||||
|
name: registry-server-tcp
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: "5000"
|
||||||
|
port: 5000
|
||||||
|
targetPort: 5000
|
||||||
|
selector:
|
||||||
|
io.kompose.service: registry-server
|
||||||
|
type: LoadBalancer
|
||||||
|
status:
|
||||||
|
loadBalancer: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.image-pull-secret: regcred
|
||||||
|
kompose.service.expose: registry-ui.wayl.one
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry-ui
|
||||||
|
name: registry-ui
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: "80"
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
io.kompose.service: registry-ui
|
||||||
|
status:
|
||||||
|
loadBalancer: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
name: registry
|
||||||
|
namespace: registry
|
||||||
|
spec: {}
|
||||||
|
status: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.service.expose: registry.wayl.one
|
||||||
|
kompose.service.type: loadbalancer
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry-server
|
||||||
|
name: registry-server
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: registry-server
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.service.expose: registry.wayl.one
|
||||||
|
kompose.service.type: loadbalancer
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.network/registry-ui-default: "true"
|
||||||
|
io.kompose.service: registry-server
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: REGISTRY_AUTH
|
||||||
|
value: htpasswd
|
||||||
|
- name: REGISTRY_AUTH_HTPASSWD_PATH
|
||||||
|
value: /auth/registry.password
|
||||||
|
- name: REGISTRY_AUTH_HTPASSWD_REALM
|
||||||
|
value: Registry
|
||||||
|
- name: REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials
|
||||||
|
value: "[true]"
|
||||||
|
- name: REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers
|
||||||
|
value: "['Accept', 'Authorization', 'Content-Type', 'Access-Control-Allow-Headers', 'X-Requested-With']"
|
||||||
|
- name: REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods
|
||||||
|
value: "[HEAD,GET,OPTIONS,DELETE]"
|
||||||
|
- name: REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin
|
||||||
|
value: "[https://registry-ui.wayl.one]"
|
||||||
|
- name: REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers
|
||||||
|
value: "[Docker-Content-Digest]"
|
||||||
|
- name: REGISTRY_HTTP_HEADERS_Access-Control-Max-Age
|
||||||
|
value: "[17280000]"
|
||||||
|
- name: REGISTRY_STORAGE_DELETE_ENABLED
|
||||||
|
value: "true"
|
||||||
|
- name: REGISTRY_TITLE
|
||||||
|
value: Waylon Walker's Docker Registry
|
||||||
|
- name: REGISTRY_URL
|
||||||
|
value: https://registry.wayl.one
|
||||||
|
image: registry:2.8.2
|
||||||
|
name: registry-server
|
||||||
|
ports:
|
||||||
|
- containerPort: 5000
|
||||||
|
protocol: TCP
|
||||||
|
resources: {}
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/registry
|
||||||
|
name: registry
|
||||||
|
- mountPath: /auth
|
||||||
|
name: registry-auth
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: registry
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: registry
|
||||||
|
- name: registry-auth
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: registry-auth
|
||||||
|
status: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry
|
||||||
|
name: registry
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 100Mi
|
||||||
|
status: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry-auth
|
||||||
|
name: registry-auth
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 100Mi
|
||||||
|
status: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.image-pull-secret: regcred
|
||||||
|
kompose.service.expose: registry-ui.wayl.one
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry-ui
|
||||||
|
name: registry-ui
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
replicas: 4
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: registry-ui
|
||||||
|
strategy: {}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.image-pull-secret: regcred
|
||||||
|
kompose.service.expose: registry-ui.wayl.one
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.network/registry-ui-default: "true"
|
||||||
|
io.kompose.service: registry-ui
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: CATALOG_ELEMENTS_LIMIT
|
||||||
|
value: "1000"
|
||||||
|
- name: CATALOG_MAX_BRANCHES
|
||||||
|
value: "1"
|
||||||
|
- name: CATALOG_MIN_BRANCHES
|
||||||
|
value: "1"
|
||||||
|
- name: DELETE_IMAGES
|
||||||
|
value: "true"
|
||||||
|
- name: NGINX_PROXY_PASS_URL
|
||||||
|
value: https://registry.wayl.one
|
||||||
|
- name: REGISTRY_SECURED
|
||||||
|
value: "true"
|
||||||
|
- name: REGISTRY_TITLE
|
||||||
|
value: Waylon Walker's Docker Registry
|
||||||
|
- name: REGISTRY_URL
|
||||||
|
value: https://registry.wayl.one
|
||||||
|
- name: SHOW_CATALOG_NB_TAGS
|
||||||
|
value: "true"
|
||||||
|
- name: SHOW_CONTENT_DIGEST
|
||||||
|
value: "true"
|
||||||
|
- name: SINGLE_REGISTRY
|
||||||
|
value: "true"
|
||||||
|
- name: TAGLIST_PAGE_SIZE
|
||||||
|
value: "100"
|
||||||
|
image: joxit/docker-registry-ui:main
|
||||||
|
name: registry-ui
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
resources: {}
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: regcred
|
||||||
|
restartPolicy: Always
|
||||||
|
status: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
kompose.cmd: kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
kompose.image-pull-secret: regcred
|
||||||
|
kompose.service.expose: registry-ui.wayl.one
|
||||||
|
kompose.version: 1.31.2 (a92241f79)
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
io.kompose.service: registry-ui
|
||||||
|
name: registry-ui
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: registry-ui.wayl.one
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- backend:
|
||||||
|
service:
|
||||||
|
name: registry-ui
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
path: /
|
||||||
|
pathType: Prefix
|
||||||
|
status:
|
||||||
|
loadBalancer: {}
|
||||||
76
registry-ui/docker-compose.yml
Normal file
76
registry-ui/docker-compose.yml
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
registry-ui:
|
||||||
|
image: joxit/docker-registry-ui:main
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 80
|
||||||
|
environment:
|
||||||
|
- SINGLE_REGISTRY=true
|
||||||
|
- REGISTRY_TITLE=Waylon Walker's Docker Registry
|
||||||
|
- DELETE_IMAGES=true
|
||||||
|
- SHOW_CONTENT_DIGEST=true
|
||||||
|
- NGINX_PROXY_PASS_URL=https://registry.wayl.one
|
||||||
|
- REGISTRY_URL=https://registry.wayl.one
|
||||||
|
- SHOW_CATALOG_NB_TAGS=true
|
||||||
|
- CATALOG_MIN_BRANCHES=1
|
||||||
|
- CATALOG_MAX_BRANCHES=1
|
||||||
|
- TAGLIST_PAGE_SIZE=100
|
||||||
|
- REGISTRY_SECURED=true
|
||||||
|
- CATALOG_ELEMENTS_LIMIT=1000
|
||||||
|
container_name: registry-ui
|
||||||
|
labels:
|
||||||
|
kompose.service.expose: registry-ui.wayl.one
|
||||||
|
kompose.image-pull-secret: regcred
|
||||||
|
# kompose.service.expose.ingress-class-name: "nginx"
|
||||||
|
# nginx.ingress.kubernetes.io/auth-type: basic
|
||||||
|
# nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
||||||
|
# nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - registry-ui"
|
||||||
|
|
||||||
|
registry-server:
|
||||||
|
image: registry:2.8.2
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 5000
|
||||||
|
environment:
|
||||||
|
REGISTRY_TITLE: Waylon Walker's Docker Registry
|
||||||
|
REGISTRY_URL: https://registry.wayl.one
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin: "[https://registry-ui.wayl.one]"
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: "[HEAD,GET,OPTIONS,DELETE]"
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials: "[true]"
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: "['Accept', 'Authorization', 'Content-Type', 'Access-Control-Allow-Headers', 'X-Requested-With']"
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: "[Docker-Content-Digest]"
|
||||||
|
REGISTRY_HTTP_HEADERS_Access-Control-Max-Age: "[17280000]"
|
||||||
|
REGISTRY_STORAGE_DELETE_ENABLED: "true"
|
||||||
|
|
||||||
|
REGISTRY_AUTH: htpasswd
|
||||||
|
REGISTRY_AUTH_HTPASSWD_REALM: Registry
|
||||||
|
REGISTRY_AUTH_HTPASSWD_PATH: /auth/registry.password
|
||||||
|
volumes:
|
||||||
|
- registry:/var/lib/registry
|
||||||
|
- registry-auth:/auth
|
||||||
|
# - registry-config:/etc/docker/registry
|
||||||
|
container_name: registry-server
|
||||||
|
labels:
|
||||||
|
kompose.service.expose: registry.wayl.one
|
||||||
|
kompose.service.type: loadbalancer
|
||||||
|
# kompose.image-pull-secret: regcred
|
||||||
|
# kompose.service.expose.ingress-class-name: "nginx"
|
||||||
|
# kompose.service.type: nodeport
|
||||||
|
|
||||||
|
# kompose.service.nodeport.port: 30001
|
||||||
|
# nginx.ingress.kubernetes.io/auth-type: basic
|
||||||
|
# nginx.ingress.kubernetes.io/auth-secret: basic-auth
|
||||||
|
# nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - registry-server"
|
||||||
|
# traefik.ingress.kubernetes.io/router.tls: "true"
|
||||||
|
# traefik.ingress.kubernetes.io/buffering: |
|
||||||
|
# maxrequestbodybytes: 20000000000
|
||||||
|
# memrequestbodybytes: 20000000000
|
||||||
|
# maxresponsebodybytes: 20000000000
|
||||||
|
# memresponsebodybytes: 20000000000
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
registry:
|
||||||
|
registry-config:
|
||||||
|
registry-auth:
|
||||||
35
registry-ui/justfile
Normal file
35
registry-ui/justfile
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
default: cred convert deploy viz
|
||||||
|
update: convert patch
|
||||||
|
|
||||||
|
inspect:
|
||||||
|
kubectl apply -f pvc-inspector.yaml
|
||||||
|
|
||||||
|
create-ns:
|
||||||
|
kubectl create ns registry
|
||||||
|
cred:
|
||||||
|
kubectl get secret -n default regcred --output=yaml -o yaml | sed 's/namespace: default/namespace: registry/' | kubectl apply -n registry -f - && echo deployed secret || echo secret exists
|
||||||
|
convert:
|
||||||
|
kompose convert -o deployment.yaml -n registry --replicas 4
|
||||||
|
deploy:
|
||||||
|
kubectl apply -f deployment.yaml
|
||||||
|
delete:
|
||||||
|
kubectl delete all --all -n registry --timeout=0s
|
||||||
|
viz:
|
||||||
|
k8sviz -n registry --kubeconfig $KUBECONFIG -t png -o registry-k8s.png
|
||||||
|
restart:
|
||||||
|
kubectl rollout restart -n registry deployment/registry-server
|
||||||
|
kubectl rollout restart -n registry deployment/registry-ui
|
||||||
|
|
||||||
|
patch:
|
||||||
|
kubectl patch -f deployment.yaml
|
||||||
|
describe:
|
||||||
|
kubectl get deployment -n registry
|
||||||
|
kubectl get rs -n registry
|
||||||
|
kubectl get pod -n registry
|
||||||
|
kubectl get svc -n registry
|
||||||
|
kubectl get ing -n registry
|
||||||
|
|
||||||
|
describe-pod:
|
||||||
|
kubectl describe pod -n registry
|
||||||
|
logs:
|
||||||
|
kubectl logs --all-containers -l io.kompose.service=registry-wayl-one -n registry -f
|
||||||
27
registry-ui/pvc-inspector.yaml
Normal file
27
registry-ui/pvc-inspector.yaml
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: pvc-inspector
|
||||||
|
namespace: registry
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: registry.wayl.one/devtainer:slim
|
||||||
|
name: pvc-inspector
|
||||||
|
command: ["sleep", "300"]
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /pvc-registry
|
||||||
|
name: pvc-registry
|
||||||
|
- mountPath: /pvc-registry-auth
|
||||||
|
name: pvc-registry-auth
|
||||||
|
- mountPath: /pvc-registry-config
|
||||||
|
name: pvc-registry-config
|
||||||
|
volumes:
|
||||||
|
- name: pvc-registry
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: registry
|
||||||
|
- name: pvc-registry-auth
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: registry-auth
|
||||||
|
- name: pvc-registry-config
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: registry-config
|
||||||
BIN
registry-ui/registry-k8s.png
Normal file
BIN
registry-ui/registry-k8s.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 233 KiB |
Loading…
Add table
Add a link
Reference in a new issue