# CS notes ## TODO list list pro docileni finalni podoby: - [x] pipeline pro nasazeni skriptu - SH skripty, nova pipeline, pripojeni skriptu do openshiftu - [x] pripojit k BE kontejneru storage pro skripty (rozmyslet strukturu) - TODO neni ani pipeline na https://github.com/csas-dev/rds-rds-batch - [x] smoke-test importu z master - [x] smoke-test exportnich skriptu - [x] pridani buildu a chartu pro UI - vysledkem pobezi UI na OC - [x] prostupy do nove ciste Oracle DB - [x] konfiguraci applikaci predavat v buildu image nebo chartu (ted compiled-in) - [x] spravne pracovat se secrets - [x] obnovit hearbeat funkci - [x] obnovit automaticky zakladanie tabuliek pri startu aplikace - [x] obnovit automaticky installer db struktur pro ws pri startu aplikace - [x] pridat apiVersion do response heartbeat endpointov - [X] upravit security config, povolit pro public version a swagger API - [x] povyseni verze spring boot frameworku na 2.7.0 - [x] upravit citanie configMap a secret pomocou spring.config.import parametru - [x] KAFKA: - [x] rozsireni konfigurace rds-core o konektivitu do kafka - [x] pridat knihovnu pro kafka api - [x] napojeni na testovaci instanci Trask / lokalni instanci - [X] service pro zapis do kafka topicu - [X] komponenta pro sestaveni json schema/message - [X] komponenta pro porovnani GC/GC1 (detekcia zmeny struktury, detekcia zmeny zaznamov) - [x] komponenta pro porovnani GC/kafka - [x] service pro cteni z kafka topicu - [x] formular pro manualni prenos cisenliku do kafka - [x] unit testy - [x] testovanie - [x] pripojit k BE kontejneru kafku - [x] vytvorit endpoint na kafkaReadiness - [x] pridat konfiguraciu pre autentifikaciu do Kafky - [x] pripojit certifikat ku BE kontejneru - [x] smoke test implementacie kafky - [x] prvotni migrace dat ## links top jfrog hierarchy - https://artifactory.csin.cz/ - https://artifactory.csin.cz/ui/repos/tree/General/rds-maven-releases-local/cz/rds2/rds2-core-app github hierarchy - https://github.com/enterprises/ceska-sporitelna - https://github.com/csas-dev/ - https://github.com/csas-dev/rds-rds-core - https://github.com/csas-dev/rds-rds-batch - https://github.com/csas-dev/rds-rds-master - https://github.com/csas-ops - https://github.com/csas-ops/rds-ocp4s-apps - https://github.com/csas-ops/cicd-samples-ocp4s-apps/actions - https://github.com/csas-actions OpenShift4 - login via AzureAD - https://console-openshift-console.apps.tocp4s.csin.cz/ - https://console-openshift-console.apps.tocp4s.csin.cz/add/ns/rds-dev - https://console-openshift-console.apps.tocp4s.csin.cz/add/ns/rds-int - https://console-openshift-console.apps.tocp4s.csin.cz/add/ns/rds-prs - ![](https://i.imgur.com/dgqzCOa.png) Argo - login via openshift credentials (AzureAD) - https://argocd-app.apps.tocp4s.csin.cz/applications?proj=&sync=&health=&namespace=&cluster=&labels= - ![](https://i.imgur.com/hnbJjdM.png) ## release howto - build RDS release - transfer RDS release to CS (google-drive) - deploy RDS release to artifactory: - ![](https://i.imgur.com/Io6Ch67.png) - ![](https://i.imgur.com/YwkaHVz.png) - ![](https://i.imgur.com/YHJZWve.png) - artefact version must be unique, pipeline user has no privileges for deleting older artefacts - https://artifactory.csin.cz:443/artifactory/rds-maven-releases-local/cz/rds2/rds2-core-app/1.0.0-a4/rds2-core-app-1.0.0-a4.war - https://artifactory.csin.cz/ui/native/rds-maven-releases-local/cz/rds2/rds2-core-app/ - https://github.com/csas-dev/rds-rds-core/blob/PSU/20220809-sample/bin/git_actions_fast.sh - build chart and docker image + upload to artifactory - update pipeline YML in csas-dev/rds-rds-core/ repository - path .github/workflows/build.yml - ![](https://i.imgur.com/RDuGC3i.png) - APP_VERSION must match release deployed to artifactory - CHART_VERSION should match app-version and defines unique iterator - chart version must be unique, pipeline user has no privileges for deleting older artefacts - update chart YAML in csas-dev/rds-rds-core/ repository - path chart/Chart.yaml - ![](https://i.imgur.com/ybkzt8K.png) - push changes, to start pipeline create and push GIT TAG - ![](https://i.imgur.com/OFVVVzG.png) - ![](https://i.imgur.com/6Qf6iN3.png) - everything is in artifactory - artefact: ![](https://i.imgur.com/OnIZEah.png) - docker: ![](https://i.imgur.com/v3BJx26.png) - helm: ![](https://i.imgur.com/mdXBvOA.png) - transfer app and charts to openshift via argoCD - ![](https://i.imgur.com/b3dxCA3.png) - push to /env/dev branch - v argo-CD se objevi novy pod - ![](https://i.imgur.com/pHM59hd.png) - novy helm chart bude synchronizovat s openshift - ![](https://i.imgur.com/1t8SouW.png) - naslouchat appka bude na adrese: - https://rds-dev-rds-core-be-app.fe.tocp4s.csin.cz/api/heartbeat/time - ![](https://i.imgur.com/tnof008.png) trouble #1: - application repo https://artifactory.csin.cz/artifactory/rds-helm-local is not permitted in project 'rds-dev' - https://argocd-app.apps.tocp4s.csin.cz/applications/rds-dev-rds-core-be-app?view=tree&resource=&conditions=true - ![](https://i.imgur.com/AikEYPO.png) - ![](https://i.imgur.com/xLRbqWB.png) - ![](https://i.imgur.com/riLw6mu.png) - FIXED: - -local je jen pro push, pro pull uz bez local trouble #2: - odstranen -local - rpc error: code = Unknown desc = `helm pull --destination /tmp/a578fd48-86d5-4b3d-bf7d-28c451c54d1e --version 1.0.0-a2-3-expire2208211600 --username ****** --password ****** --repo https://artifactory.csin.cz/artifactory/rds-helm rds-core-be-app` failed exit status 1: Error: chart "rds-core-be-app" version "1.0.0-a2-3-expire2208211600" not found in https://artifactory.csin.cz/artifactory/rds-helm repository - FIXED - mam blbe verzi v OPS, spravne je rds-core-be-app-1.0.0-a3-2-expire2208211600.tgz trouble #3: - https://argocd-app.apps.tocp4s.csin.cz/applications/rds-dev-rds-core-be-app?view=tree&resource= - ![](https://i.imgur.com/Y1ezjvQ.png) Readiness probe failed: Get "http://100.96.21.178:9000/api/heartbeat/readiness": dial tcp 100.96.21.178:9000: connect: connection refused ---------- ---------- ---------- ---------- ---------- ---------- # prvni deploy - info - verze : 2.3.0a1-SNAPSHOT - verze plna : 2.3.0a1-20220809.093727-1 - artefakt: https://artifactory.csin.cz/ui/native/rds-maven-snapshots-local/cz/rds2/rds2-core-app/2.3.0a1-SNAPSHOT/rds2-core-app-2.3.0a1-20220809.093727-1.war - steps - push tagu: rds2-core-app-2.3.0a1 - pipeline vyparsuje z tagy verzi - pro testovani bez tagu mame default hodnotu na `rds2-core-app-2.3.0a1` - trigger actions on "rds2-core-app-*" - - curl ${artifactory_URL} ... - !!! chapu dobre, ze na snapshot primou URL nesestavim? - ![](https://i.imgur.com/BmpTYiz.png) - omg - ![](https://i.imgur.com/3XdrtKa.png) - ![](https://i.imgur.com/NDN5bO7.png) DQ1) jake spravne PATH: - CHART_REPOSITORY: https://artifactory.csin.cz:443/artifactory/cicd-samples-helm - IMAGE_REPOSITORY: artifactory.csin.cz/cicd-samples-docker-local/java-app-spring-maven DQ2) curl s --user mi nefunguje, prosim jak to bylo v tom samplu, viz.: - `curl --user ${{ secrets.ARTIFACTORY_USERNAME }}:${{ secrets.ARTIFACTORY_TOKEN }} -X GET "https://artifactory.csin.cz/ui/native/rds-maven-snapshots-local/cz/rds2/rds2-core-app/2.3.0a1-SNAPSHOT/rds2-core-app-2.3.0a1-20220809.093727-1.war"` > spatna URL, sem debil - "ui/native" tam prilepil FE, spravna URL napr.: DQ3) primou URL snapshot nevime, je v tom encoded i timestamp + iterator - ui: https://artifactory.csin.cz/ui/native/rds-maven-snapshots-local/cz/rds2/rds2-core-app/2.3.0a1-SNAPSHOT/rds2-core-app-2.3.0a1-20220809.093727-1.war - artefact: https://artifactory.csin.cz/artifactory/rds-maven-snapshots-local/cz/rds2/rds2-core-app/2.3.0a1-SNAPSHOT/rds2-core-app-2.3.0a1-20220809.093727-1.war > ano, nahravat budeme do release ne do snapshots https://artifactory.csin.cz/artifactory/rds-maven-releases-local/cz/rds2/rds2-core-app/1.0.0-a2/rds2-core-app-1.0.0-a2.war ## prvni funkcni pipeline https://github.com/csas-dev/rds-rds-core/runs/7783655523?check_suite_focus=true ## links - OS3->OS4: https://hackmd.io/zpnVdX6zToCHvwrMQ_Q1iw?both - CI/CD home: https://cnfl.csin.cz/display/CICD/CICD+Home - onboarding OS4: https://cnfl.csin.cz/display/CICD/Onboarding+do+OpenShift+v4 - artifactory: https://artifactory.csin.cz/ui/ - vzorove aplikace: https://cnfl.csin.cz/pages/viewpage.action?pageId=770392240 - verzovani: https://cnfl.csin.cz/pages/viewpage.action?pageId=735706623 - curl download z artifactory se lze inspirovat zde: https://github.com/csas-actions/helm-artifactory-publish/blob/main/publish.sh - github OPS repo: https://github.com/csas-ops/rds-ocp4s-apps - github DEV repo: https://github.com/csas-dev/rds-rds-core ## structure ### OpenShift 4 info: - POCP4S.CSIN.CZ - PROD prostredi - ... irrelevant ... - TOCP4S.CSIN.CZ - TEST prostredi - Testovaci instance single clusteru - dev, int, prs - dulezite URL - OCP konzole: https://console-openshift-console.apps.tocp4s.csin.cz - Systemove ArgoCD: https://argocd-sys.apps.tocp4s.csin.cz - Aplikacni ArgoCD: https://argocd-app.apps.tocp4s.csin.cz - Interni Kibana: https://kibana-openshift-logging.apps.tocp4s.csin.cz - Interni Grafana: https://grafana-openshift-monitoring.apps.tocp4s.csin.cz - Certifikat pro zasifrovani secretu pomoci SealedSecrets: https://certificate-sealed-secrets.apps.tocp4s.csin.cz/v1/cert.pem - Obecně povolené prostupy na openshift tocp4 - Webova konzole - DST IP: - console-openshift-console.apps.tocp4s.csin.cz - console-openshift-console.apps.pocp4s.csin.cz - DST Port: - 80 /tcp - 443/tcp - API pro oc-cli - DST IP: - api.tocp4s.csin.cz - api.pocp4s.csin.cz - DST Port: - 6443/tcp ### argo CD Nasazování aplikací má nyní na starost ArgoCD, což je GitOps CD nástroj ### GitHub Notes > GitHub je v tuto chvíli podporován pouze jako úložiště zdrojových kódů. Zejména nejsou podporovány a není povoleno používat GitHub Actions, Marketplace ani Packages. Jejich povolení se plánuje v navazujících fázích. Česká spořitelna vystupuje na GitHubu jako 1 tzv. enterprise Česká spořitelna. Tato enterprise se skládá ze 4 organizací: - csas-dev - Tato organizace je určena pro běžné použití vývojáři v České spořitelně. Ve výchozím stavu mají všichni právo pro čtení všech ostatních repozitářů v této organizaci. - csas-sec - Tato organizace je určena pro důvěrné zdrojové kódy. Do repozitářů mají přístup pro čtení i zápis pouze uživatelé v rámci daného týmu. - csas-ops - Tato organizace je určena pro provozní konfigurace. - csas-opensource - Tato organizace je určena pro kód, který může být zveřejněn. Jedná se především o SDK, knihovny a podobně. K repozitářům v této organizaci je možné přidat externí spolupracovníky (mimo ČS). Zrizeni pristupu viz.: https://cnfl.csin.cz/pages/viewpage.action?pageId=665000304 - Prvotní přihlášení na GitHub.com - Pro první přihlášení na GitHub je potřeba si zaregistrovat svůj nový pracovní účet na GitHubu a ten následně spárovat se spořitelní identitou pomocí SAML SSO. - Registrace pracovního účtu na GitHub.com - Účet zaregistrujete na https://github.com/signup - Uživatelské jméno musí být ve tvaru {cast_emailu_pred_zavinacem_bez_tecky}-{cen/ext/sol} a e-mail spořitelní - napr. - email: PaSulc@ext.csas.cz - username: PaSulc-ext93415 - URL - csas-dev : https://github.com/orgs/csas-dev/sso - csas-sec : https://github.com/orgs/csas-sec/sso - csas-ops : https://github.com/orgs/csas-ops/sso - csas-opensource : https://github.com/orgs/csas-opensource/sso - csas-actions : https://github.com/orgs/csas-actions/sso - csas-education : https://github.com/orgs/csas-education/sso - csas-ext : https://github.com/orgs/csas-ext/sso - ssh repo - Nahrání veřejného SSH klíče na GitHub - github - preference - SSH and GPG keys - configure SSO - authorize XYZ - https://cnfl.csin.cz/download/attachments/665000592/image2021-11-16_16-1-47.png?version=1&modificationDate=1637074907322&api=v2 OPS REPO TODO: https://github.com/csas-ops/rds-ocp4s-apps ### GitHub Actions - soucast github repo, novej tab ### Artifactory - ... # Q: - Q1) systemove vs aplikacni ArgoCD? - pouze aplikacni nas zajima - Q2) GitHub doc pise vize nize, znamena to ze resime jen ArgoCD? > GitHub je v tuto chvíli podporován pouze jako úložiště zdrojových kódů. Zejména nejsou podporovány a není povoleno používat GitHub Actions, Marketplace ani Packages. Jejich povolení se plánuje v navazujících fázích. - nejakej bullshit, asi neplatne stare info # meeting notes 2022-08-09 ## git repo - DEV repo: `git clone org-70206600@github.com:csas-dev/rds-rds-core.git` - OPS repo:`git clone org-70206600@github.com:csas-ops/rds-ocp4s-apps.git` - sample repo:`git clone org-70206600@github.com:csas-dev/cicd-samples-java-app-spring-maven` ## example deploy ## other - HELM chart pridat do github DEV - Dockerfile -> github OPS - artifactory - nahravat do rds2-snapshots - zamyslet se nad suffixem, slozitejsi nez vypada - version predavat v tagu - dalsi version je potre ba zapisovat do helm chart - actions - souborove v .github/workflow - dva kroky - PUSH docker container - PUSH helm chart - ArgoCD - zatim nemam prostup z citrix - openshift - zatim nemam prostup z citrix