https://github.com/okestro-aidevops/idontkare
Now I don't care about multi-cluster Kubernetes CI/CD pipelines, because this one does
https://github.com/okestro-aidevops/idontkare
cicd containers distributed-systems golang kubernetes network tls
Last synced: 5 months ago
JSON representation
Now I don't care about multi-cluster Kubernetes CI/CD pipelines, because this one does
- Host: GitHub
- URL: https://github.com/okestro-aidevops/idontkare
- Owner: OKESTRO-AIDevOps
- License: apache-2.0
- Created: 2024-08-20T05:38:03.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-15T05:00:57.000Z (over 1 year ago)
- Last Synced: 2024-12-24T07:46:47.215Z (over 1 year ago)
- Topics: cicd, containers, distributed-systems, golang, kubernetes, network, tls
- Language: Go
- Homepage:
- Size: 113 KB
- Stars: 2
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# idontkare
Now I don't care about multi-cluster Kubernetes project management, because this one does
## Get started
### requirements
- linux
- go
- docker
- make
- kind (kubernets in docker, for development)
### 1. server start
```shell
# start db in container
cd db && sudo docker compose up --build -d
# close db
cd db && sudo docker compose down
# build client, server
make build SERVER_HOST=localhost # or whatever the domain name of yours
# build agent
make build-agent
# start server
cd src/server && ./server.out
```
### 1-a. mock cluster for development
```shell
# kubernetes cluster in docker
cd hack/cluster && sudo ./kindcluster.sh $USER
# check if cluster is up and running
kubectl get nodes
# to destroy
sudo kind delete cluster --name kindcluster
```
### 2. set up cluster and project
```shell
cd src/client
# user set
./client.out user set --name sampleusername --pass sampleuserpass
# or use file for user set
./client.out user set --from-file $FILE_PATH
# for example
./client.out user set --from-file ./sample/userset.yaml
# cluster set, this will write private key pem to stdout
./client.out cluster set --username sampleusername --name samplecluster
# project set
./client.out project set --from-file ./sample/projectset.yaml
# the above won't work, obviously!
# to make it work
# replace content properly
```
### 3. connect cluster
```shell
cd src/agent
# save private key content
# modify config.yaml accordingly
# connect agent
./agent.out
```
### 4. test build and deployment
```shell
cd src/client
# update ci option
./client.out project ci option set --username sampleusername --name sampleproject --path ./sample/cioption.yaml
# update cd option
./client.out project cd option set --username sampleusername --name sampleproject --path ./sample/cdoption.yaml
```
### 5. more client requests
```shell
# get all ci history for project
./client.out project ci history get all --username sampleusername --project sampleproject
# get all cd history for project
./client.out project cd history get all --username sampleusername --project sampleproject
# get lifecycle report for project
./client.out lifecycle report get latest --username sampleusername --project sampleproject
```
## Reference
This project has history.
See [nkia](https://github.com/OKESTRO-AIDevOps/nkia)
Whenever I think about whether this project is meaningful at all, I play [this song](https://www.youtube.com/watch?v=GVKRqIDS3WY)