🐦 Add ldapweb on hscloud.ovh tutorial
parent
2dc1cd7abb
commit
f0d3652737
|
@ -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
|
||||
```
|
Loading…
Reference in New Issue