# Rancher - Configuración inicial Una vez que hayas creado el _Cluster_, lo siguiente será agregar los siguientes paquetes: - Helm - Cert-manager - Argocd ## Helm [Helm](https://helm.sh) es un manejador de paquetes de _Kubernetes_, mediante este manejador de paquetes podrás añadir diversos paquetes a tu _Cluster_ mediante CLI. Para añadir _Helm_, puedes instalarlo mediante _Brew_: `brew install helm` en caso de que tengas MacOs, o con _Chocolatey_ para Windows: `choco install kubernetes-helm` Asimismom puedes añadir _Helm_ mediante un archivo binario, para ello, visita la [guía de instalación](https://helm.sh/docs/intro/install/). ## Cert-manager [Cert-manager](https://cert-manager.io/docs/) es un manejador de certificados SSL/HTTP que te permitirá añadir y renovar certificados automaticamente. Para añadir _Cert-manager_ a nuestro _Cluster_ instalalo mediante _Helm_ con el siguiente comando: ``` helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.6.0 \ --set installCRDs=true ``` ## ArgoCD [ArgoCD](https://argo-cd.readthedocs.io/en/stable/) es una herramienta que te permitirá ejecutar CD, GitOps en _Kubernetes_. Para añadir _ArgoCD_ a nuestro _Cluster_, ejecuta los siguientes comandos: ``` kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml ``` Una vez que hayas ejecutado los comandos, deberás añadir los siguientes elementos: - Cluster Issuer - Ingress ### ArgoCD - Cluster Issuer Finalmente, deberás añadir un _clusterIssuer_ para conectar el certificado con _ArgoCD_. ``` apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt namespace: argocd spec: acme: server: https://acme-v02.api.letsencrypt.org/directory privateKeySecretRef: name: letsencrypt solvers: - http01: ingress: class: nginx ``` ### ArgoCD - Ingress Mediante Ingress conectarás el servicio con la dirección HTTP que hayas declarado con tu proveedor de DNS. ``` apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: argocd-server-ingress namespace: argocd annotations: cert-manager.io/cluster-issuer: letsencrypt kubernetes.io/ingress.class: nginx spec: rules: - host: <dirección-http> http: paths: - path: / pathType: ImplementationSpecific backend: service: name: argocd-server port: name: http tls: - hosts: - <dirección-http> secretName: argocd-tls ``` Finalmente, para obtener la contraseña del portal de _ArgoCD_, ejecuta: ``` kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo ``` Al ajecutar el comando te mostrará la contraseña, con la cual podrás ingresar con el usuario: admin