# 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
- 
Argo
- login via openshift credentials (AzureAD)
- https://argocd-app.apps.tocp4s.csin.cz/applications?proj=&sync=&health=&namespace=&cluster=&labels=
- 
## release howto
- build RDS release
- transfer RDS release to CS (google-drive)
- deploy RDS release to artifactory:
- 
- 
- 
- 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
- 
- 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
- 
- push changes, to start pipeline create and push GIT TAG
- 
- 
- everything is in artifactory
- artefact: 
- docker: 
- helm: 
- transfer app and charts to openshift via argoCD
- 
- push to /env/dev branch
- v argo-CD se objevi novy pod
- 
- novy helm chart bude synchronizovat s openshift
- 
- naslouchat appka bude na adrese:
- https://rds-dev-rds-core-be-app.fe.tocp4s.csin.cz/api/heartbeat/time
- 
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
- 
- 
- 
- 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=
- 
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?
- 
- omg
- 
- 
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