Thursday, November 10, 2022

Apex Ords Operator for Kubernetes


We often need to provision Apex and Ords for Dev, Stage, Prod. 
This is the operator to automate Apex Oracle Application Express 19.1 and Ords oracle rest data service via Kubernetes CRD, it creates a brand new Oracle 19c database statefulset, apex, ords deployment plus load balancer in the Kubernetes cluster


Full details and source codes are on GitHub repository


Tuesday, November 08, 2022

OKE Admission Control Webhook Sample


We need to implement a policy requested by the security team that Kubernetes service should have an annotation : None Thus no security list will be updated by Kubernetes. This is an example that how we build our own admission controller which implements various policies from security or other teams. ie we can add only internal load balancer is allowed for internal service.....etc


  • Please refer github repo
  • git clone
  • go build -o oke-admission-webhook
  • docker build --no-cache -t repo-url/oke-admission-webhook:v1 .
  • rm -rf oke-admission-webhook
  • docker push repo-url/oke-admission-webhook:v1
  • ./deployment/ --service oke-admission-webhook-svc --namespace kube-system --secret oke-admission-webhook-secret
  • kubectl replace --force -f deployment/validatingwebhook.yaml
  • kubectl replace --force -f deployment/deployment.yaml
  • kubectl replace --force -f deployment/service.yaml


Friday, June 04, 2021

Kubectl Plugin for Oracle Database


We often need to provision new oracle databases for developers
This is the kubectl plugin to automate the creation of oracle database statefulset in the Kubernetes cluster


Full details and source codes are on the GitHub repository


Sunday, May 23, 2021

Tip: Can't find docker networking namespace via ip netns list


    In ubuntu, we start a docker container, try to find docker networking namespace via "ip netns list". The output is empty.


   The docker by default , it records netns on /var/run/docker/netns. While "ip netns list" is checking /var/run/netns


 stop all containers , rm -rf /var/run/netns,  ln -s /var/run/docker/netns  /var/run/netns


To find netns id of container use

docker ps ---> find container ID

docker inspect <contain ID> |grep netns

Thursday, May 13, 2021

Tip: Bind Error when running multiple schedulers in K8S

Error details: 

I0530 09:25:29.097683       1 serving.go:331] Generated self-signed cert in-memory

failed to create listener: failed to listen on listen tcp bind: address already in use


     It's due to the default scheduler is running on the same node. We can move the 2nd scheduler to another node to fix this.