• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    ALMADDocker a kontejnery
    SADY
    SADY --- ---
    DWICH: aha, v tom muze bejt rozdil no... zajimava cloudova politika
    DWICH
    DWICH --- ---
    SADY: Na to jsem narazil, kdyz jsem vcera hledal ty tokens a to podle vseho nabizi Bitbucket jen v server verzi, ne jeho cloud verze.

    Kdyz jsem to chtel najit pro Bitbucket cloud, tak jsem se dostal sem, kde pisou, ze to v cloud verzi neni
    Personal Access Token for Bitbucket Cloud?
    https://community.atlassian.com/t5/Bitbucket-questions/Personal-Access-Token-for-Bitbucket-Cloud/qaq-p/677663

    Mozna neco prehlizim.

    BESH: Build args predavam, pro secrets me to nenapadlo, dalsi dobrej tip, dikes!
    SADY
    SADY --- ---
    DWICH: proste personal token, kde ta persona je robot co ti buildi appku, tam si expiration nastavis sam

    Personal access tokens | Bitbucket Data Center and Server 7.16 | Atlassian Documentation
    https://confluence.atlassian.com/bitbucketserver/personal-access-tokens-939515499.html
    BESH
    BESH --- ---
    DWICH: Pokud potrebujes nejakou hodnotu jen pro nejakej build step, tak lze dodat `docker build --build-arg MY_SECRET=abcd`. Ta hodnota pak nebude ve vyslednem image persistovana. Takovyhle args se daji v CI obvykle narvat pres nejaky pipeline variables.
    DWICH
    DWICH --- ---
    Díky všem za rady! Ten ssh klíč je jednoúčelovej, čistě pro čtení z toho repo a na nic dalšího se nepoužívá. Namountovat ho mě nenapadlo, díky za tip.

    S multistage počítám. Nicméně i když půjde o multistage, tak stejně neodpadne ta nutnost dostat ze secret managera ten klíč do image, ať už přes COPY nebo mount. Je to tak?

    Ten balíček z Bitbucketu potřebuju přidat v poslední fázi instalace aplikace (tzn. v posledním kroku multistage). Z toho mi vychází, že bych za tímhle posledním krokem měl udělat ještě jeden opravdu-poslední krok, do kterého přenesu sakum-prdum instalovanou appku (tzn. nezkopíruje se klíč). Je to tak?
    MARTEN
    MARTEN --- ---
    VELDRANE: Tak do multistage bych sel i z duvodu velikosti vysledneho image. I kdybych nepotreboval zadny klic apod., tak stejne by to byla spravna cesta.

    DWICH: Ale jinak pokud ti jde i jen o klic, tak ho muzes pri buildu mountnout do ~/.ssh/.... (podle toho odkud se defaultne bere) a bude ti pak fungovat. Zadne copy. Ale rozhodne je lepsi pouzit multistage. V prvnim si delat co chces a finalni ma jen stazene soubory a pripadne uz i zkompilovane. Finalni image by pak uz nic takoveho nemel delat - v RUN z duvodu velikosti a poctu layers, v CMD kvuli rychlosti startu containeru.
    I kdyby si ho tam dostal pres COPY a pak smaznul, tak pozor, porad tam zustane v jednom z layeru a lze ho z toho bez problemu dostat a zneuzit.
    VELDRANE
    VELDRANE --- ---
    DWICH: obecne nevidim problem mit nekde ssh klic, problem vidim v tom co s tim ssh klicem muzes delat. Jinymi slovy spis zalezi na tom jak silna prava jsou prirazena entite, ktera se autentizuje pomoci toho klice. Totez plati i o tokenu. Navic je ímho v tomhle pripade bezpecnejsi ssh klic nez token, kterej muze obsahovat spoustu readable informaci, ale asi bude zaelzet i na tokenu.

    Zaznel tu i termin “secret” v kubernetes. Secret neni zas tak secret :) protoze je to pouze zakodovana nejaka imformace (klic, cert, heslo atd) v base64 - nic vic nic min. Pokud chces nejakou vyssi formu bezpecnosti, pak je na zvazeni treba nejakej vault, otazka je jak potom dostat automaticky data z toho vaultu.

    Osobne bych sel cestou multistage jak Ti radi King
    JON
    JON --- ---
    DWICH: ja prave nevim jak v bitbucketu - to prostredi nepouzivam a nemam rad.
    DWICH
    DWICH --- ---
    JON: Na to jsem nenarazil a klidně si nechám napovědět. Co jsem v rychlosti prošel, tak mi vyskočilo tohle
    Use OAuth on Bitbucket Cloud | Bitbucket Cloud | Atlassian Support
    https://support.atlassian.com/bitbucket-cloud/docs/use-oauth-on-bitbucket-cloud/
    kde access token má platnost dvě hodiny a novej získáš přes OAuth2

    Uložit v secret manageru ssh klíč nebo credentials pro získání access tokenu a jeho následný použití mi přijde podobný, možná trochu složitější s tím tokenem. Nebo mi něco uniká?


    RAGNAROK: Díky za tip, nemám vyzkoušeno, mrknu na to.
    RAGNAROK
    RAGNAROK --- ---
    .netrc file
    JON
    JON --- ---
    DWICH: nestaci na ten bitbucket nejaky token pro read-only access misto ssh klice?
    DWICH
    DWICH --- ---
    DANIELSOFT, KING: Obojí mám vyzkoušený, tak snad cílovej setup nebude složitější. Build bude probíhat v GCP v Cloud Buildu, tak to zkusím napojit na tamní secrets (ne na kube secrets).

    Díky!
    KING
    KING --- ---
    DWICH: na tohle bych pouzil multi-stage build (https://docs.docker.com/develop/develop-images/multistage-build/) kde v prvnim kroku se vse sthne a nainstaluje a v druhem pak uz nebudou potreba ty secrets ani veci jako git
    DANIELSOFT
    DANIELSOFT --- ---
    DWICH: v Kubernetes je něco, co se jmenuje "secrets" a je přesně k tomuto: detaily si nepamatuju, protože jsem na tom dělal v roce 2016. možná je něco podobného v Compose či menším orchestrátoru, pokud je Kubernetes overkill, ale můžeš se u nich podívat, jak to mají udělané
    DWICH
    DWICH --- ---
    Zdravíčko vespolek. Mám Dockerfile, v něm pouštím pip install -r requirements.txt a v něm je jeden balíček, co je na na Bitbucketu. pip si zavolá git, ten udělá git clone a balíček nainstaluje. Potud OK. Ten git ale potřebuje ssh klíč, aby se mohl Bitbucketu ověřit.

    Ten ssh klíč můžu do Dockerfile zapsat, nechat proběhnout instalaci a pak ho smazat. Abych ten klíč do dostal do Dockeru, mám COPY, jenže to COPY může číst jen v rámci adresářů, kam může Dockerfile. A tím se dostávám k problému - kde by ten ssh klíč měl být uložený? Resp. jaké máte best practices, jak instalovat balíčky z privátních repos do dockerů?

    Diky za feedback, kritiku snesu :)
    FALLENANGEL
    FALLENANGEL --- ---
    MORTAELTH: A je to taky o rychlosti uvolnovani novych verzi, kdy v ramci microservices jsi schopnej byt mnohem rychlejsi, nez u monolitnich aplikaci.
    MORTAELTH
    MORTAELTH --- ---
    Prejit na microservice architekturu imho neni tolik o tom jestli to zakaznici chteji.. je to o tom ze ti to usnadni vyvoj, nebo konkretneji komunikaci uvnitr vyvojovych tymu. Pokud nekdo dela aplikaci jako sadu nezavislych modulu, ktere vystavuji iface ostatnim modulum a tech modulu jsou desitky, tak ti vrstva nad tim (service mesh) pomuze to zorganizovat a nemit v tom chaos, snizit mnoztvi otazek na chatu jak se ma co zapojit a co se ocekava, a taky urcite bude mit chyb, ktere vzniknou jako dusledek te potreby dobre komunikovat / dokumentovat..

    Asi je hrozne tezke rict kdy uz se to vyplati a kdy ne.. nejake zhodnoceni faktoru jako je velikost organizace (tymu) / vnitrni procesy / architektura aplikace / velikost produktu.
    VELDRANE
    VELDRANE --- ---
    ADMIX: Hele myslim ze zakos pro kyeryho makam nema uplne nejmensi prostredi (stovky nodu v clusteru, mrte service apod), a stejne nemam pocit ze bychom istio nebo treba linkerd potrebovali. Tak by me zajimal konrektni case kdy to cloveku muze pomoct.


    FALLENANGEL: Jo ja ma stejnej pocit. To end2end sifrovani chapu, jen bych se to imho snazil resit asi jinak - ale ok tady to smysl asi dava.
    FALLENANGEL
    FALLENANGEL --- ---
    VELDRANE: Nejsem si jistej, do jaky miry to zakaznici opravdu potrebuji a do jaky miry si opravdu chteji jenom hrat s novou technologii :) Cast z nich nasazuje Istio kvuli bezpecnosti, protoze s jeho pomoci muzes snadno a ve velkym rozsahu nasadit pod to pod sifrovani.
    ADMIX
    ADMIX --- ---
    VELDRANE: spis mas stesti ze nemas deployment kterej by byl na skale nebo komplexite ospravedlnujici veci typu service mesh. Ty dve sluzby tady zmineny jsou netflix a neco co se pri vypadku dostane do televize :)
    Kliknutím sem můžete změnit nastavení reklam