1
0
Fork 0

🐦 Add ldapweb on hscloud.ovh tutorial

master
cheshire 2023-10-14 13:33:52 +02:00
parent 2dc1cd7abb
commit f0d3652737
2 changed files with 108 additions and 1 deletions

103
03-create-service.md Normal file
View File

@ -0,0 +1,103 @@
# Tworzenie publicznej usługi w hscloud
W tym rozdziale przedstawię, jak stworzyć usługę, która będzie dostępna publicznie w Internecie.
## Tworzenie kopii ldapweb
Zaczynamy od włączenia środowiska nix-shell:
```bash
cd hscloud
nix-shell
```
Zaczynamy w katalogu `hscloud`, z włączonym środowiskiem `nix-shell`. Jeśli w folderze `//personal` jeszcze nie masz swojej przestrzeni nazw, to ją tworzymy:
```bash
mkdir personal/$hs_username
```
Kopiujemy do przestrzeni roboczej konfigurację usługi `ldapweb`:
```bash
cp -r hswaw/ldapweb/ personal/$hs_username/
cd personal/$hs_username/ldapweb/
```
## Modyfikacja usługi
Konfiguracja `ldapweb` zawiera się w pliku `prod.jsonnet`. Format `jsonnet` jest bardzo podobny do `json`, ale pozwala na użycie zmiennych, funkcji oraz importowanie innych plików.
Interesuje nas początkowy fragment pliku:
```jsonnet
local kube = import "../../kube/kube.libsonnet";
{
local top = self,
local cfg = self.cfg,
cfg:: {
name: 'ldapweb',
namespace: 'ldapweb',
domain: 'profile.hackerspace.pl',
image: 'registry.k0.hswaw.net/radex/ldap-web:1695486391',
},
...
}
```
Import następuje z pliku `kube.libsonnet` w folderze `kube` w folderze `hscloud`. Aby w tym wypadku import przebiegał poprawnie, potrzebujemy cofnąć się o jeden folder więcej: `../../../kube/kube.libsonnet`.
Konfiguracja `hscloud` pozwala na przestrzeń nazw jedynie w formacie `personal-$hs_username`. Dodatkowo, musimy zmienić domenę na `test.hscloud.ovh`. Na końcu, zmieniamy nazwę usługi na `test`.
Ostatecznie, powyższy fragment pliku `prod.jsonnet` powinien wyglądać tak (pamiętaj o podmianie `$hs_username` na swoją nazwę użytkownika!):
```jsonnet
local kube = import "../../../kube/kube.libsonnet";
{
local top = self,
local cfg = self.cfg,
cfg:: {
name: 'test',
namespace: 'profile-$hs_username',
domain: '$hs_username-test.hscloud.ovh',
image: 'registry.k0.hswaw.net/radex/ldap-web:1695486391',
},
...
}
```
Logujemy się do klastra:
```bash
prodaccess -username $hs_username
```
Z pliku `prod.jsonnet` generujemy plik `deployment.json`:
```bash
kubecfg show prod.jsonnet > deployment.json
```
Wywołujemy komendę zastosowania zmian:
```bash
kubectl apply -f deployment.json
```
Nasza usługa powinna być pod adresem `https://$hs_username-test.hscloud.ovh/`. W trakcie pierwszych paru minut dostaniemy informację o niepoprawnym certyfikacie, ponieważ usługa Let's Encrypt nie zdążyła jeszcze wygenerować certyfikatu dla naszej domeny.
Aby usunąć usługę, należy wywołać:
```bash
kubectl delete -f deployment.json
```
lub
```bash
kubectl delete service $hs_username-test -n personal-$hs_username
```

View File

@ -9,4 +9,8 @@ Wprowadzenie do tworzenia usług w hscloud. Niniejszy zestaw dokumentów ma na c
## Przygotowywanie narzędzi
- [Budowa środowiska](02-build-environment.md)
- [Budowa środowiska](02-build-environment.md)
## Wdrażanie przykładowej usługi
- [Wdrażanie usługi ldapweb](03-create-service.md)