@Mars Warrior Mijn post eerder vandaag was er vooral voor bedoeld om je mee te geven waar ik uit ervaring quick-wins kon halen. Het is ook niet zo dat die route de verplichte of beste route is hè
. Daarnaast zoveel mensen, zoveel wensen
.
Het gebruik van (gedeeltelijke) open-source tooling is echt fantastisch in een enterprise, maar ook dat heeft soms nadelen. Kijk bijvoorbeeld naar het licentiedebacle van Docker Desktop. In ons bedrijf werd Docker Desktop veelvuldig gebruikt, maar dat kon ineens niet meer. Rancher Desktop is toen mooi in dat gat gesprongen, maar dat heeft wel even geduurd.
Je moet in dat geval dan ook rekening houden met licentie en licentievoorwaarden
.
. Alleen met een enterprise prijs, wellicht een onderhoudscontract en wat redundantie. Maar ook op een dergelijke server heb ik het helaas vaak genoeg meegemaakt dat een (build)proces te hongerig was voor geheugen en daardoor de hele server of kritieke onderdelen van de server meenam. Ook Docker containers. De oom-killer wordt dan ineens je grootste vijand.
Met een IdP zoals Dex kun je zelfs meerdere IdP's ontsluiten
.
.
Forgejo en Renovate icm Docker is echt niet bijzonder complex. Ik heb een eigen Forgejo dind runner die automatisch door Renovate wordt bijgehouden. In de .forgejo map vind je tevens mijn workflows voor het bouwen.
Het opzetten van Renovate is (kort door de bocht) in Forgejo echt triviaal. Daarbij ga ik er van uit dat Forgejo Actions al werkt. Met daarna...
renovate.yaml
Het gebruik van (gedeeltelijke) open-source tooling is echt fantastisch in een enterprise, maar ook dat heeft soms nadelen. Kijk bijvoorbeeld naar het licentiedebacle van Docker Desktop. In ons bedrijf werd Docker Desktop veelvuldig gebruikt, maar dat kon ineens niet meer. Rancher Desktop is toen mooi in dat gat gesprongen, maar dat heeft wel even geduurd.
Je moet in dat geval dan ook rekening houden met licentie en licentievoorwaarden
Spreiden van systemen of functionaliteiten biedt overigens niet direct een soort van high-availability hè. Het kan soms ook prettig zijn voor je eigen gemoedsrust. Wij hadden met TeamCity bijvoorbeeld 5 agents. 2 Windows en 3 Linux agents. Doordat dit aparte VM's waren konden we bij onderhoud of met tests 1 agent (tijdelijk) aanpassen of stopzetten. Ik moet er niet aan denken als dit 1 server zou zijn.Het zal dus niet meteen een kritisch systeem zijn, waarbij je alles over meerdere fysieke servers/VMs wilt spreiden. Teveel complexiteit vergt hogere kosten en meer afstemming en goedkeuring.
De enterprise server is net zoveel server als jouw thuisserver kerelDus alles zal vooralsnog op één grote server/VM draaien. Hier thuis draait het ook al sinds 2023 zonder problemen, dus ik neem aan dat een enterprise server dat ook wel moet kunnen qua betrouwbaarheid en uptime.
Dat begrijp ik, maar ik kan je echt op het hart drukken om dit mee te nemen. Of althans de aansluiting daarvan mee te nemen. GitLab en Forgejo kunnen allebei goed aangesloten worden op verschillende IAM systemen. Ik log bijvoorbeeld in Forgejo in met Pocket ID, maar gebruikers of service accounts worden onder water bijgehouden en provisioned door een LDAP.Vooralsnog staat IAM/SSO bijv. ook niet op mijn lijstje. We willen voorlopig autonoom kunnen proefdraaien, zonder alle afstemming met IT. SSO zal geheid later aan bod komen, maar we zijn nog in de voorstel fase...
Met een IdP zoals Dex kun je zelfs meerdere IdP's ontsluiten
Dan is zoiets als Ansible wel enorm handigVanzelfsprekend kun je op Proxmox wel een aantal VMs maken, zodat je al kunt "oefenen" met de scheiding die je noemt qua inrichting. Als dat later fysieke servers worden (in een VM) dan wijzigt er wat dat aangaat niks vanuit de software opzet/architectuur.
Forgejo en Renovate icm Docker is echt niet bijzonder complex. Ik heb een eigen Forgejo dind runner die automatisch door Renovate wordt bijgehouden. In de .forgejo map vind je tevens mijn workflows voor het bouwen.
Het opzetten van Renovate is (kort door de bocht) in Forgejo echt triviaal. Daarbij ga ik er van uit dat Forgejo Actions al werkt. Met daarna...
- een Renovate User / Bot aanmaken;
- een Personal Access Token aanmaken voor de Renovate Bot;
- een Renovate repository aanmaken (bijv. renovate/renovate);
- een config.js bestand aanmaken voor Renvoate;
- een Renovate Forgejo workflow aanmaken;
- renovate bot toevoegen aan de repo's waar renovate gerund moet worden.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
| module.exports = { platform: 'gitea', endpoint: 'https://forgejo.example.com/api/v1/', gitAuthor: 'Renovate Bot <renovate@example.com>', username: 'renovate-bot', autodiscover: true, optimizeForDisabled: true, persistRepoData: true, osvVulnerabilityAlerts: true, dependencyDashboardOSVVulnerabilitySummary: 'all' }; |
renovate.yaml
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| name: Run Renovate # yamllint disable-line rule:truthy on: schedule: - cron: '0 */6 * * *' workflow_dispatch: inputs: log_level: description: Log level required: true default: info type: choice options: - debug - info - warn - error - fatal concurrency: group: ${{ github.workflow }} cancel-in-progress: true jobs: renovate: name: Renovate runs-on: docker container: ghcr.io/renovatebot/renovate:42.26.2 steps: - name: ⤵️ Checkout repository uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6 - name: 🧾 Set log level id: log_level run: | LOG_LEVEL_INPUT=${{ inputs.log_level }} echo "::set-output name=level::${LOG_LEVEL_INPUT:-"info"}" - name: 🚀 Renovate run: renovate env: LOG_LEVEL: ${{ steps.log_level.outputs.level }} RENOVATE_CONFIG_FILE: 'config.js' RENOVATE_CONFIG_MIGRATION: 'true' RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }} |
/f/image/uXkmMkSc0tQVyRCiUS841sSl.png?f=fotoalbum_large)
/f/image/3aWHLQDv9VuJXnUeIONLG8Gc.png?f=fotoalbum_large)
/f/image/CU7Tbets7Nro2nhbRhpwK1il.png?f=fotoalbum_large)
/f/image/Q5RckVMiXhFMnrhGOCwXxT56.png?f=fotoalbum_large)
/f/image/vimsjVMzicvJRIZdv8HZXTlJ.png?f=fotoalbum_large)
:strip_exif()/f/image/GzSa52jv7cyUl9Iq5aNoUxxg.png?f=user_large)
:strip_exif()/f/image/iyKMNVqjIl33TI5C235zefqd.png?f=user_large)
/f/image/L5zwvZyMnPV35Z9tNsUCS1bQ.png?f=fotoalbum_large)
/f/image/5kYxcRaFX4TgWiqkTtz9hCsC.png?f=fotoalbum_large)
/f/image/oqTznUI78A5U094Fy9gwpuXe.png?f=fotoalbum_large)
/f/image/S9NQNl3BtYmh7XkLY1jNRoVz.png?f=fotoalbum_large)
/f/image/c4cVDvFIx2SSdPFBPdMe7NQB.png?f=fotoalbum_large)
/f/image/QOVoBbb0yEICTca84LgTo7sA.png?f=fotoalbum_large)
/f/image/3jYFXgUus0ECnTp8Eok4AA7L.png?f=fotoalbum_large)
:strip_exif()/f/image/KSwoaHEAXKLWMfb7x6vT8Z1Z.png?f=user_large)
/f/image/eZz1YEkUjiTq82jUfyF1sdMv.png?f=fotoalbum_large)
:strip_exif()/f/image/GqFahEqoIJNJPjF9wRoGsmTN.png?f=user_large)
:strip_exif()/f/image/FejRWwBMYGw15L5s1JbChAa8.jpg?f=fotoalbum_large)
/f/image/qrk9v5CclTjzIbqCf0gnC14Q.png?f=fotoalbum_large)
/f/image/q1osnuGwzR9vThnYhq13fe5v.png?f=fotoalbum_large)
/f/image/50MxTwEJVOvVBpH3KkwA9iGe.png?f=fotoalbum_large)