crearRegistry.sh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. borrarActual () {
  2. echo ">>>> Borrando registro actual..."
  3. kubectl delete -f registry-deployment.yaml
  4. kubectl delete -f registry-pv.yaml
  5. echo ">>>> Borrando secrets actuales..."
  6. kubectl delete secret auth-secret
  7. kubectl delete secret certs-secret
  8. kubectl delete secret reg-cred-secret
  9. kubectl delete pod/nginx-pod
  10. }
  11. step1 () {
  12. echo "Step 1: Creating files for authentication\n\n"
  13. echo ">>>> Creando directorios..."
  14. mkdir -p /registry && cd "$_"
  15. rm -rf auth/
  16. rm -rf certs/
  17. echo "Creando certificados..."
  18. mkdir certs
  19. openssl req -x509 -newkey rsa:4096 -days 365 -nodes -sha256 -keyout certs/tls.key -out certs/tls.crt -subj "/CN=docker-registry" -addext "subjectAltName = DNS:docker-registry"
  20. echo "Creando autorizaciones..."
  21. mkdir auth
  22. docker run --rm --entrypoint htpasswd registry:2.7.0 -Bbn creylopez Rey-1176 > auth/htpasswd
  23. }
  24. step2 () {
  25. echo "Step 2: Using secrets to mount the certificates\n\n"
  26. echo "Creando secret certs-secret..."
  27. kubectl create secret tls certs-secret --cert=/registry/certs/tls.crt --key=/registry/certs/tls.key
  28. echo "Creando secret auth-secret..."
  29. kubectl create secret generic auth-secret --from-file=/registry/auth/htpasswd
  30. }
  31. step3() {
  32. echo "Step 3: Creating Persistent Volume and Claim for repository storage\n\n"
  33. kubectl create -f /home/creylopez/k8s-cluster-projects/MiRegistry/registry-pv.yaml
  34. }
  35. step4() {
  36. echo "Step 4: Creating the Registry Pod\n\n"
  37. kubectl create -f /home/creylopez/k8s-cluster-projects/MiRegistry/registry-deployment.yaml
  38. }
  39. step5() {
  40. echo "Step 5: Allowing access to the registry\n\n"
  41. echo "Copio tls.cert a /etc..."
  42. sudo cp certs/tls.crt /etc/docker/certs.d/docker-registry\:32000/ca.crt
  43. }
  44. step6() {
  45. echo "Step 6: Testing our Private Docker Registry"
  46. docker login docker-registry:32000 -u creylopez -p Rey-1176
  47. echo "Creando secret reg-cred-secret..."
  48. kubectl create secret docker-registry reg-cred-secret --docker-server=docker-registry:32000 --docker-username=creylopez --docker-password=Rey-1176
  49. echo "Descargo imagen nginx..."
  50. docker pull nginx
  51. echo "... la etiqueto..."
  52. docker tag nginx:latest docker-registry:32000/minginx:1
  53. echo "... y la subo al registry... "
  54. docker push docker-registry:32000/minginx:1
  55. #kubectl exec docker-registry-pod -it -- sh
  56. }
  57. prueba() {
  58. echo "Creo un pod con la nueva imagen..."
  59. kubectl run nginx-pod --image=docker-registry:32000/minginx:v1 --overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "reg-cred-secret"}] } }'
  60. }
  61. borrarActual
  62. #step1
  63. #step2
  64. #step3
  65. #step4
  66. #step5
  67. #step6
  68. #final