Jump to content

Portal:Toolforge/Admin/Envvars Service

From Wikitech
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Documentation of components and common admin procedures for Envvars Service.

Components

  • Envvars client (source code): main entrypoint for users
  • Envvars API (source code): main entry-point for clients (users use the cli)
  • Envvars admission controller (source code): Injects the envvars into the new pods.


Alerts

None specific yet

Dashboards

TBD

Main phabricator board

https://phabricator.wikimedia.org/project/board/539/

Administrative tasks

Starting a service

Envvars API

This lives in kubernetes, behind the API gateway. To start it you can try redeploying it. To do so follow Portal:Toolforge/Admin/Kubernetes/Components#Deploy (the component is toolforge-envvars-api).

You can monitor if it's coming up with the usual k8s commands:

root@toolsbeta-test-k8s-control-4:/srv/git/toolforge-deploy# kubectl get all -n envvars-api
NAME                               READY   STATUS    RESTARTS   AGE
pod/envvars-api-564c68f5b4-mrxgg   2/2     Running   0          8d
pod/envvars-api-564c68f5b4-z8q99   2/2     Running   0          8d

NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/envvars-api   ClusterIP   10.101.128.128   <none>        8443/TCP   8d

NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/envvars-api   2/2     2            2           8d

NAME                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/envvars-api-564c68f5b4   2         2         2       8d

Envvars admission controller

Also a k8s component, follow Portal:Toolforge/Admin/Kubernetes/Components#Deploy (the component is envvars-admission-controller).

root@toolsbeta-test-k8s-control-4:/srv/git/toolforge-deploy# kubectl get all -n envvars-admission
NAME                                     READY   STATUS    RESTARTS   AGE
pod/envvars-admission-5d7698bbbd-n565j   1/1     Running   0          8d
pod/envvars-admission-5d7698bbbd-rdhgj   1/1     Running   0          8d

NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/envvars-admission   ClusterIP   10.106.169.195   <none>        443/TCP   8d

NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/envvars-admission   2/2     2            2           8d

NAME                                           DESIRED   CURRENT   READY   AGE
replicaset.apps/envvars-admission-5d7698bbbd   2         2         2       8d

Stopping a service

Envvars API

Being a k8s deployment, the quickest way might be just to remove the deployment itself (will require redeploying to start again).

root@toolsbeta-test-k8s-control-4:~# kubectl get deployment -n envvars-api envvars-api -o yaml > backup.yaml  # in case you want to restore later with kubectl apply -f backup.yaml

root@toolsbeta-test-k8s-control-4:~# kubectl delete deployment -n envvars-api envvars-api

For a full removal (CAREFUL! Only if you know what you are doing) you can use helm:

root@toolsbeta-test-k8s-control-4:~# helm uninstall -n envvars-api envvars-api


Envvars admission controller

Similar to envvars api:

root@toolsbeta-test-k8s-control-4:~# kubectl get deployment -n envvars-admission envvars-admission -o yaml > backup.yaml  # in case you want to restore later with kubectl apply -f backup.yaml

root@toolsbeta-test-k8s-control-4:~# kubectl delete deployment -n envvars-admission envvars-admission

For a full removal (CAREFUL! Only if you know what you are doing) you can use helm:

root@toolsbeta-test-k8s-control-4:~# helm uninstall -n buildpack-admission buildpack-admission

Checking all components are alive

We don't have a unified dashboard yet, but for now you can check each component individually.

Envvars API

You can monitor if it's coming up with the usual k8s commands:

root@toolsbeta-test-k8s-control-4:/srv/git/toolforge-deploy# kubectl get all -n envvars-api
NAME                               READY   STATUS    RESTARTS   AGE
pod/envvars-api-564c68f5b4-mrxgg   2/2     Running   0          8d
pod/envvars-api-564c68f5b4-z8q99   2/2     Running   0          8d

NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/envvars-api   ClusterIP   10.101.128.128   <none>        8443/TCP   8d

NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/envvars-api   2/2     2            2           8d

NAME                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/envvars-api-564c68f5b4   2         2         2       8d

Envvars admission controller

Also a k8s component, different namespace:

root@toolsbeta-test-k8s-control-4:/srv/git/toolforge-deploy# kubectl get all -n envvars-admission
NAME                                     READY   STATUS    RESTARTS   AGE
pod/envvars-admission-5d7698bbbd-n565j   1/1     Running   0          8d
pod/envvars-admission-5d7698bbbd-rdhgj   1/1     Running   0          8d

NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
service/envvars-admission   ClusterIP   10.106.169.195   <none>        443/TCP   8d

NAME                                READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/envvars-admission   2/2     2            2           8d

NAME                                           DESIRED   CURRENT   READY   AGE
replicaset.apps/envvars-admission-5d7698bbbd   2         2         2       8d