ArgoCD Uygulama Örneği 1

Deniz TÜRKMEN
4 min readMar 10, 2023

--

Merhabalar,

Bu yazımda daha önce kurduğumuz ArgoCD üzerinden ccontinuous deployment gerçekleştircez.

Eğer ArgoCD localinizde kurulu değil ise diğer yazımdam kurulumu gerçekleştirebilirsiniz.

ilk Gitops örneğimizi yapmaya başlayabiliriz. İlk olarak argocd UI login oluyoruz. Application menüsünden new application açıyoruz.

Buradan New application yada create application diyoruz.

Application name, project name ve synsc policy şeçiyoruz. Sync policy maneul olarak seçtim eğer siz automatic seçerseniz her 3 dk bir eğer yaml ta bir değişiklik algıladığında automatic olarak deployment’ı gerçekleştirecektir.

Repository URL gitops yapacağımız repo’nun https olan kısmını ekliyoruz tabikide repository public ise eğer repository private ise ssh-keygen oluşturdğumuz private key’i olan certificate eklemeliyiz.

Destination kısmında hangi cluster’ı deployment yapacaksak onu şeçiyoruz. Bu arada multi cluster’ımız olabilir ondan hangi cluster’a deployment yapacaksak onu seçmeliyiz.

Namespace kısmında deployment’lar hangi kubernetes namespace’e deployment yapılcak ise onu yazıyoruz.

İlgili yerleri girdikten sonra create ile application’ını oluşturuyoruz.

Evet görüldüğü gibi sync oldu ve ilgide manifest yamlları belirttiğimiz namespace deployment’ı gerçekleştirdik.

Note: ArgoCD kurduğum dokümanda in-cluster durmunu unknown olarak gözüküyordu ve ilk gitops deployment’ı aktifleşeceğini söylemiştim. Şimdide ona bakalım. Bunun için isterseniz UI’dan istersenizde cli’dan yapabilirsiniz.

argocd cluster list

Yukarıdaki çıktıda görüldüğü gibi cluster’ımız successful oldu :)

Şimdide detaylara bakalım. Aşağıdaki şekilde görüldüğü gibi tüm manifestleri ilgili namespace deployment’ı gerçekleştirdi.

kubectl get all -n deniz

İlgili service ve deployment objelerini görüyoruz. Hatta deployment’a bakalım. Bunun için;

minikube service list

Ve tarayıcıdan 192.168.59.101:31850 gittiğimizde,

Deployment’ın gerçekleştiğini görmekteyiz. Son olarak deployment’ın replicasını ve image değiştirip commit atalım.

apiVersion: apps/v1
kind: Deployment
metadata:
name: web
namespace: deniz
labels:
app: web
spec:
selector:
matchLabels:
app: web
replicas: 4
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: denizturkmen/rollingupdatev2:latest
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 80
name: web
restartPolicy: Always

Github’a commit attıktan sonra;

ArgoCD UI’dan manuel olarak eklediğimiz sync ediyoruz.

Evet görüldüğü gibi revision gerçekleşti hem yeni deployment geçti hemde deployment’ın replicası 4 çıktı.

Tarayıcıdan 192.168.59.101:31850 gittiğimizde,

Evet başarılı şekilde gerçekleşti.

--

--

Deniz TÜRKMEN
Deniz TÜRKMEN

No responses yet