# 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