
Bulutta IDE : Eclipse Che
Giderek herşeyin buluta taşındığı günümüzde, yazılım geliştirme için kullandığımız IDE’lerin de halkadaki yerlerini almaları kaçınılmaz. Bu konuda başı çeken Eclipse ailesinin üyesi ise Eclipse Che. Eclipse Che, Eclipse Foundation’ın yeni nesil IDE ve platformudur. Geliştirici çalıştırma alanı ve bulut tabanlı IDE’den oluşmaktadır. İlk Kubernetes-native IDE olma özelliğine sahiptir.
Eclipse Che Docker, Kubernetes, Openshift gibi konteynar tabanlı sistemlerde geliştiriciler için çalışma alanları oluşturur ve bu çalışma alanlarını yönetir. Masaüstü IDE’lerde olduğu gibi kaynak kod sunucusuna başlanarak işlem yapabilir, modern editor desteğine sahip olabilirsiniz. Bulutta bir IDE’nin kaçınılmaz olarak sunduğu ekip işbirliği, dağıtık çalışma alanı ve herhangi bir cihazda çalışmaya olanak sunan taşınabilirlik öne çıkan özellikleri arasındadır.

Eclipse Che 7 ile birlikte ivmelenen proje, geniş bir yelpazede eklenti desteğine de sahip. Geliştirdiğiniz uygulamaların derlemeniz ve hata ayıklamanız için ihtiyaç duyduğunuz araçları bünyesinde barındırmakta. Eclipse Theia‘nın gelişmiş bir versiyonu olan Eclipse Che IDE’si tarayıcı üzerinde sunduğu editor deneyimi ile Visual Studio Code’u aratmamakta. Eclipse Theia’nın eklenti yapısının Visual Studio Code eklenti yapısı ile önemli oranda örtüşmesi nedeniyle pek çok Visual Studio Code eklentisi Eclipse Che IDE’sinde kullanılabilir.
Kubernetes Üzerinde Eclipse Che Kurulumu
Aşağıdaki adımlar takip edilerek Kubernetes Cluster’ı üzerinde Eclipse Che kurulumu yapılabilir. Kurulum ön gereksinimi olarak Kubernetes Cluster’ınızda Operator Lifecycle Manager kurulu olmalıdır. Operator Lifecycle Manager kurulum adımlarını önceki makalemde bulabilirsiniz.
Kubernetes üzerinde Eclipse Che kurulumu için OperatorHub’ta bir operator bulunmaktadır. Aşağıdaki komut yardımıyla Operator Hub’ta yer alana Eclipse Che operator‘ü kurulur;
kubectl create -f https://operatorhub.io/install/eclipse-che.yaml
Bu komut my-eclipse-che namespace’i altına Eclipse Che operator’ünü kuracaktır. Aşağıdaki komutla operator durumu kontrol edilebilir;
kubectl get pods -n my-eclipse-che
Alternatif olarak aşağıdaki komutla operator kurulumu kontrol edilebilir;
kubectl get csv -n my-eclipse-che
Eclipse Che operator’ünün kurulması ardından Eclipse Che Cluster’ı kurabilmek için gerekli olan CheCluster CRD tanımı kullanıma hazır hale gelecektir. Aşağıdaki komutla my-eclipse-che.yaml dosyası oluşturulur;
cat > my-eclipse-che.yaml <<EOF apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: eclipse-che spec: k8s: ingressDomain: 'ide-192-168-200-3.enterprisecoding.io' tlsSecretName: '' server: cheImageTag: '' devfileRegistryImage: '' pluginRegistryImage: '' tlsSupport: false selfSignedCert: false database: externalDb: false chePostgresHostName: '' chePostgresPort: '' chePostgresUser: '' chePostgresPassword: '' chePostgresDb: '' auth: identityProviderImage: '' externalIdentityProvider: false identityProviderURL: '' identityProviderRealm: '' identityProviderClientId: '' storage: pvcStrategy: per-workspace pvcClaimSize: 1Gi preCreateSubPaths: true EOF
Bu komutun 8. satırında yer alan Ingress domain değeri ide-192-168-200-3.enterprisecoding.io
yerine kendi ingress domain değerinizi yazmalısınız. Bunun için benim kullandığım şekilde dinamik DNS kaydı oluşturabildiğiniz enterprisecoding.io alan adını kullanabilirsiniz. 192-168-200-3
ifadesi yerine kendi Kubernetes Cluster’ınızdaki Ingress Controller ip’sini verebilirsiniz. Alternatif olarak kullanabileceğiniz wildcard dns hizmetleri için daha önce paylaştığım makalemi okuyabilirsiniz.
CheCluster custom resource definiton için kullanılabilecek değerler için Eclipse Che gelişmek yapılandırmaları sayfası incelenebilir.
CheCluster CRD’sini aşağıdaki komutla tanımlayınız;
kubectl create -f my-eclipse-che.yaml -n my-eclipse-che
Kurulum durumu aşağıdaki komutla operator loglarında takip edilebilir;
kubectl logs -f -n my-eclipse-che $(kubectl get pods --selector=app=che-operator -n my-eclipse-che -o name)

Kurulumun başarıyla sonlanması ile birlikte Eclipse Che URL’si ekrana yazılacaktır. Bu durum aşağıdaki komutla takip edilebilir;
kubectl logs -f -n my-eclipse-che $(kubectl get pods --selector=app=che-operator -n my-eclipse-che -o name) | grep "Eclipse Che is now available"

Alternatif olarak url aşağıdaki komutla da öğrenilebilir;
kubectl describe checluster/eclipse-che -n my-eclipse-che

Url tarayıcıda açıldığında keycloak login sayfasına yönlendirilecektir;

Varsayılan kullanıcı adı ve şifresi admin ile sisteme giriş yapılabilir. Açılan Dashboard sayfasında angular-realworld-example-app projesi seçilerek Create & Open butonuna basılarak örnek proje başlatılabilir;




Kullanıcı ve Grup Yönetimi
Eclipse Che kullanıcı ve grup işlemleri Keycloak uygulaması üzerinde yönetilmektedir. Keycloak arayüzüne aşağıdaki adres üzerinden erişilebilir;
http://keycloak-my-eclipse-che.[ingress domain]/auth/
Örneğin;
http://keycloak-my-eclipse-che.ide-192-168-200-3.enterprisecoding.io/auth/

Keycloak’a admin kullanıcısı eklemek için aşağıdaki komutla pod konsoluna girilir;
kubectl exec -it -n my-eclipse-che $(kubectl get pods --selector=app=che,component=keycloak -n my-eclipse-che -o name) bash
Pod içerisinde aşağıdaki komut çalıştırılarak kullanıcı eklenir;
./keycloak/bin/add-user-keycloak.sh -r master -u [KULLANICI_ADI] -p [ŞİFRE]
Değişikliklerin algılanması için reload edilir;
./keycloak/bin/jboss-cli.sh --connect command=:reload