diff --git a/bonus/confs/argocd.yaml b/bonus/confs/argocd.yaml new file mode 100644 index 0000000..ce88c31 --- /dev/null +++ b/bonus/confs/argocd.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: playground + namespace: argocd +spec: + project: default + source: + repoURL: http://gitlab-service.gitlab.svc.cluster.local/root/iot-bonus.git + targetRevision: HEAD + path: . + destination: + server: https://kubernetes.default.svc + namespace: dev + syncPolicy: + automated: + selfHeal: true + prune: true + syncOptions: + - CreateNamespace=true diff --git a/bonus/confs/gitlab-deployement.yaml b/bonus/confs/gitlab-deployement.yaml new file mode 100644 index 0000000..4bdb6d9 --- /dev/null +++ b/bonus/confs/gitlab-deployement.yaml @@ -0,0 +1,42 @@ +apiVersion: v1 +kind: Service +metadata: + name: gitlab-service +spec: + selector: + app: gitlab + ports: + - name: http + port: 80 + targetPort: 80 + - name: https + port: 443 + targetPort: 443 + - name: ssh + port: 22 + targetPort: 22 + type: LoadBalancer +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gitlab-deployement + labels: + app: gitlab +spec: + replicas: 1 + selector: + matchLabels: + app: gitlab + template: + metadata: + labels: + app: gitlab + spec: + containers: + - name: gitlab + image: gitlab/gitlab-ce:latest + ports: + - containerPort: 80 + - containerPort: 443 + - containerPort: 22 diff --git a/bonus/confs/gitlab-ingress.yaml b/bonus/confs/gitlab-ingress.yaml new file mode 100644 index 0000000..2384b9c --- /dev/null +++ b/bonus/confs/gitlab-ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: minimal-ingress +spec: + rules: + - host: "gitlab.bonus.com" + http: + paths: + - path: "/" + pathType: Prefix + backend: + service: + name: gitlab + port: + number: 80 diff --git a/bonus/scripts/get_argocd_passwd.sh b/bonus/scripts/get_argocd_passwd.sh new file mode 100755 index 0000000..834225e --- /dev/null +++ b/bonus/scripts/get_argocd_passwd.sh @@ -0,0 +1 @@ +kubectl -n argocd get secrets argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d diff --git a/bonus/scripts/get_gitlab_passwd.sh b/bonus/scripts/get_gitlab_passwd.sh new file mode 100755 index 0000000..be8eea8 --- /dev/null +++ b/bonus/scripts/get_gitlab_passwd.sh @@ -0,0 +1,2 @@ +kubectl exec -n gitlab pods/$(kubectl get pods -n gitlab -o jsonpath={.items[0].metadata.name}) -- grep Password: /etc/gitlab/initial_root_password + diff --git a/bonus/scripts/intall.sh b/bonus/scripts/intall.sh new file mode 100755 index 0000000..b13a85d --- /dev/null +++ b/bonus/scripts/intall.sh @@ -0,0 +1,19 @@ +#!/bin/env bash + +# Install dependancies +command -v docker >/dev/null || sudo pacman -S docker +command -v kubectl >/dev/null || sudo pacman -S kubectl +wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash + +k3d cluster create + +# Install gitlab +kubectl create ns gitlab +kubectl apply -n gitlab -f ./confs/gitlab-deployement.yaml +kubectl apply -n gitlab -f ./confs/gitlab-ingress.yaml + +# Install ArgoCD +kubectl create namespace argocd +kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml + +kubectl apply -n argocd -f ./confs/argocd.yaml diff --git a/bonus/scripts/port-forward-argocd.sh b/bonus/scripts/port-forward-argocd.sh new file mode 100755 index 0000000..2ee242b --- /dev/null +++ b/bonus/scripts/port-forward-argocd.sh @@ -0,0 +1 @@ +kubectl port-forward svc/argocd-server -n argocd 8080:443