---
# System prepended metadata

title: CS notes

---

# 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

