:!: Let op! deze documentatie is nog volop in ontwikkeling :!: \\ \\ ====== Openshift Command Line Interface (oc) ====== ===== Download ===== De OpenShift CLI (openshift-client of 'oc') is beschikbaar voor Windows, MacOS en Linux en is [[https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/|hier te downloaden]] Nadat je met de OpenShift web console ingelogd bent, kan je via je userprofile (rechtsboven op je eigen naam klikken) het login commando kopieren (Copy login command -> display token) en uitvoeren (oc login --token etc.). Je maakt hierbij gebruik van het "oc" commando die je met de bovenstaande link kan installeren. Meestal kun je, als je met "oc get" ergens informatie over kan opvragen, met "oc describe" uitgebreidere informatie opvragen. Over het algemeen is het "OC" commando zo ingedeeld: oc [] #EXAMPLE: oc get project myproject1 ===== Bash/tab completion ===== In MacOS en Linux kun je gebruik maken van tab completion, voor verschillende beschikbare shell's kun je de completion file genereren. Bijv. voor BASH onder MacOS: oc completion bash > ~/.bash_oc_completion #direct inladen source ~/.bash_oc_completion #permanent inladen, kopieer de file naar de bash_completion directory cp ./bash_oc_completion /usr/local/etc/bash_completion.d/oc ===== Inloggen ===== Inloggen op de betreffende Openshift omgeving gaat via ^commando ^ opties ^beschrijving^ | oc login | -u | inloggen in openshift | | oc whoami || laat zien als welke user je bent ingelogt | | oc project || laat zien in welk project je werkt | #bijvoorbeeld: oc login -u gebruiker https://master.chp.npohosting.nl:8443/ ===== Project Management ===== ^commando ^ opties ^beschrijving^ | oc projects || Laat beschikbare projecten zien | | oc new-project || Maak een project aan | | oc project || Laat zien in welk project je momenteel werkt | | oc project | | Verander je huidige workspace naar een ander project | ==== Gebruikers rechten geven of ontnemen binnen projecten ==== **Note : alleen een project admin kan deze commando's uitvoeren** Deze commando's zijn bedoeld om gebruikers en groepen toegang te geven tot een project. Beschikbare rollen : ^ Role ^ Omschrijving ^ | admin | Een gebruiker die edit rechten heeft binnen het project en de mogelijkheid heeft om project memberships aan te passen | | edit | Een gebruiker die meeste resources kan maken en aanpassen binnen het project, maar kan niet de project memberships aan passen | | view | Een gebruiker die het project kan bekijken, maar kan geen resources aanpassen en kan geen secrets of memberships zien in het project | * Voeg project rol toe aan gebruiker oc policy add-role-to-user * Voeg project rol toe aan groep oc policy add-role-to-group * Verwijder project rol van gebruiker oc policy remove-role-from-user * Verwijder project rol van groep oc policy remove-role-from-group * Laat zien welke rollen er uitgedeeld zijn in het project oc get rolebinding -o wide //Bijvoorbeeld, je wilt gebruiker // ==== Status en informatie binnen je project ==== ^commando ^ opties ^beschrijving^ |oc status| | laat alle services, deployment configs, build configurations, en actieve deployments zien binnen je project| |oc logs | -f | Logs tonen van een object \\ -f voor persistent (vergelijkbaar met tail -f) | |oc get ev | |events tonen van het hele cluster | |oc get all | |list alle resource types binnen je project | |oc describe | |uitgebreidere informatie listen over een resource type |oc get pods |-o wide | list alle pods (zoals met ps) \\ -o wide voor meer opties | ==== Troubleshooting & debugging ==== * Direct vanaf je werkstation connectie maken. Zet een portforward op naar een pod: oc port-forward : # example mysql : oc port-forward mysql-1-ghb5q 6001:3306 mysql -p 6001 -h localhost -u -p * Direct commando's binnen een container uitvoeren oc exec [-c (optioneel] ==== Netwerk-gerelateerd ==== ^commando ^ opties ^beschrijving^ |oc get svc| | list alle services binnen je project| |oc expose | --hostname| Route creƫren \\ (zonder --hostname wordt het -. )|