ArgoCD Kurulumu ve GitHub Entegrasyonu

ArgoCD Kurulumu

ArgoCD Kurulumu için aşağıdaki adımları takip edeceğiz.

Adım1:
ArgoCD github hesabında bulunan install.yaml dosyasını kullanarak gerekli nesnelerin oluşturulmasını sağlayacağız.

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
ArgoCD Kurulumu

Adım2:

Yukarıdaki adımdan sonra SelfSigned SSL sertifikası ile birlikte ingress nesnesi oluşturarak ArgoCD UI tarafına erişim sağlayacağız. Burada sistem üzerinde Ingress Controller kurulu olduğu varsayılmıştır. Ayrıca bakınız.

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/tls_key.key -out /tmp/tls_crt.crt -subj "/CN=argocd.<your_ip_address>.nip.io"

Şimdi yukarıdaki adımda oluşturduğumuz key ve crt dosyaları ile aşağıdaki şekilde secret oluşturma dımına devam edelim. Secret nesnesi ile sertifikamıza ait key ve crt dosyalarını tutacağız. Bu sayede ingress nesnesi içerisinde bu değerleri girerek belirtiğimiz adrese güvenli olarak erişeceğiz.

kubectl create secret tls argocd-secret4ssl -n argocd --cert=/tmp/tls_crt.crt --key=/tmp/tls_key.key

Sertifika üretimden sonra aşağıdaki şekilde ingress tanımı oluşturarak uygulamaya erişim sağlayacağız.

vim ing.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-server-http
  namespace: argocd
  annotations:
    kubernetes.io/ingress.class: "nginx"
    #nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
    #nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  rules:
  - http:
      paths:
      - pathType: Prefix
        path: /
        backend:
          service:
            name: argocd-server
            port:
              name: https
    host: argocd.<ip_adresi>.nip.io
  tls:
  - hosts:
    - argocd.<ip_adresi>.nip.io
    secretName: argocd-secret4ssl
kubectl create -f ing.yaml

NOT: Eğer yukarıdaki ayarlardan sonra erişim sağlayamaz aşağıdaki şekilde hata alır iseniz deployment içerisine aşağıdaki satırları ekleyerek gerekli değişimleri sağlayabilirsiniz.

Aşağıdaki komutlar ile gerekli değişimleri yapabilirsiniz.

kubectl edit deploy argocd-server -n argocd

Daha sonra aşağıdaki satırları ilgili alana eklemeli ve kaydedip dosyayı kapatabilirsiniz. Aşağıdaki ayarlar ile insecure connection aktif edilerek tanımlanmamış sertifika ile gelen erişimler başarılı bir şekilde geçecektir.

HAFİF BİLGİ: Burada üretilen sertifika tamamen self signed bir sertfika olması nedeniyle tanımlanmamış yada tanınmamış bir otorite sebebi ile sayfaya erişim bakımından hata vermektedir. Biz alttaki satırları ekleyerek bağlantı yapmış olacağız. Allta sadece “– –insecure” satırını eklememiz yeterli olacaktır.

- --repo-server
- argocd-repo-server:8081
- --insecure

Bu adımlardan sonra ARGOCD tarafına başarılı bir şekilde erişim sağlayabiliriz. Aşağıdaki şekilde secret içerisinden gerekli paraloyı alarak ArgoCD için login olabiliriz.

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

Aşağıdaki şekilde yukarıdaki bilgiler ile login olabiliriz.

Şimdi aşağıdaki şekilde GitHub üzerinden gerekli reponun eklenmesini sağlayarak işleme devam edelim. Aşağıda örnek olarak verilmiş yaml dosyasını repo üzerine ekleyeceğim ve örnek uygulamanın oluşmasını sağlayacağım. Aşağıdaki repo bilgisini oluşturacağınız argocd application kısmına ekleyebilirsiniz. Aşağıdaki repo tanımı ile PV, PVC, Deployment, Servis Ve Ingress oluşmasını sağlayacağız.

Ayrıca basit bir şekilde index.html şeklinde basit bir web sayfası oluşturulmasını sağlayalım.

cd /opt/WhiteFANG
vim index.html
Test Page for ArgoCD Application
https://github.com/hafifbilgiler/ARGOCD.git

Yukarıdaki eklemeleri yaptıktan sonra kontrol ederek gerekli uygulamaların oluşup oluşmadığına bakalım

Daha sonra oluşan uygulamaya tıkladıktan sonra aşağıdaki şekilde oluşan yapıları görmemiz mümkün olacaktır.

Şimdi aynı yaml dosyası içerisinde image versiyonunu güncelleyelim ve sonuca bakalım.

Yukarıdaki görselde görüldüğü üzere yeni image versiyonu ile deployment nesnesi güncellenmiştir. Ayrıca ingress nesnesi ile bağlantıyı test edebiliriz.

Görüldüğü üzere ArgoCD ile Repomuzda var olan yaml dosyaları ile gerekli komponentlerin oluşturulmasını sağlayabilir ve günceleme olduğunda aktif olarak bunu sisteme yansıtabiliriz.

Similar Posts

  • Ansible Kurulum Rehberi

    LINUX RHEL7.6 ÜZERİNE ANSİBLE KURULUMU Makineniz internet ortamına  açık değil  ise aşağıdaki adımlar takip edilecektir.Buradan ilgili rpm dosyasının son sürümü indirilir. İndirilen dosya WinSCP vb. uygulamalar ile makine üzerinde belirleyeceğimiz bir dizine atılır. Daha sonra ilgili dizin üzerinde rpm dosyası ile kurulum adımına geçilir. Kurulum adımında belli gereksinimler olacaktır. Aynı şekilde gereksinimler indirilerek kurulum adımına…

  • Installing Applications with Ansible

    NGINX INSTALL WITH ANSIBLE Under this topic, installation of Nginx Web Server application will be explained.To do this you should follow below steps.Step1:You can downloand Nginx Instalaltion packages from this repository. After, you should copy files on the ansible machine.Also you can use git command to clone files. To do this you should use below…

  • Jenkins Kurulum ve Kullanım

    LINUX ÜZERİNE JENKINS KURULUMU Burada linux üzerine manuel olark jenkins kurulumu anlatılacaktır.  Kurulum için ilgili .rpm dosyası indirilerek yum komutu ile kurulum yapılacaktır ve jenkins arayüzüne erişim sağlanacaktır. 1)Buradan rpm dosyası indirilir.2)İndirilen rpm dosyası linux(rhel7.6) üzerine atılarak kurulum adımına geçilir.3)Kurulum yapılır.(linux makine üzerinde Open JDK Javanın yüklü olması gerekir. Yüklü değil ise önce java kurulur.Buradan…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir