kapetanios
Tested against:
ubuntu 22.04 LTS
build requirements:
golang v1.23.1
libprotoc 27.3
cluster requirement
It is assumed that the following roles would be assigned to the respective nodes:
- Master Nodes: kubectl label node assigned-node-role-certs.kubernetes.io=certs and "node-role.kubernetes.io/control-plane" annotation
- assigned-node-role-minor-upgrade.kubernetes.io
- External Etcd Nodes: kubectl label node assigned-node-role-etcd.kubernetes.io=etcd
- the kubeadm config file location should be in the location /etc/kubernetes/kubeadm/kubeadm-config.yaml
Protoc Code Generation
make protgen
Docker Build
docker build . -t quay.io/klovercloud/kapetanios:latest; docker push quay.io/klovercloud/kapetanios:latest; docker build . -t quay.io/klovercloud/certs-expiration:latest -f certs-expiration.Dockerfile; docker push quay.io/klovercloud/certs-expiration:latest; docker build . -t quay.io/klovercloud/certs-renewal:latest -f certs-renewal.Dockerfile; docker push quay.io/klovercloud/certs-renewal:latest; docker build . -t quay.io/klovercloud/etcd-migration:latest -f etcd-migration.Dockerfile; docker push quay.io/klovercloud/etcd-migration:latest; docker build . -t quay.io/klovercloud/etcd-restart:latest -f etcd-restart.Dockerfile; docker push quay.io/klovercloud/etcd-restart:latest; docker build . -t quay.io/klovercloud/minor-upgrade:latest -f minor-upgrade.Dockerfile; docker push quay.io/klovercloud/minor-upgrade:latest; docker build . -t quay.io/klovercloud/rollback:latest -f rollback.Dockerfile; docker push quay.io/klovercloud/rollback:latest;
Deploy in K8s
kubectl create -f manifests/.
Testing
grpc
grpcurl -v -plaintext kapetanios.default.svc.cluster.local:50051 Renewal/StatusUpdate{
"backupSuccess" : true,
"renewalSuccess" : true,
"restartSuccess" : true
}