add fluxcd_all_in_one.sh k3s_all_in_one.sh

This commit is contained in:
Haitao Pan 2024-03-06 22:46:26 +08:00
parent 289e8688e8
commit 9878210c3e
2 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,30 @@
helm repo add stable https://charts.onwalk.net
helm repo update
kubectl create namespace gitops-system || true
helm upgrade --install fluxcd stable/flux2 --version 2.12.1 -n gitops-system -f fluxcd-values.yaml
cat > cluster-config.yaml << EOF
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
name: stable
namespace: gitops-system
spec:
interval: 1m0s
ref:
branch: main
url: https://github.com/svc-design/gitops.git
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: cluster
namespace: gitops-system
spec:
interval: 1m0s
sourceRef:
kind: GitRepository
name: stable
path: ./clusters/k3s-local
prune: true
EOF

93
scripts/k3s_all_in_one.sh Normal file
View File

@ -0,0 +1,93 @@
#!/bin/sh
function get_local_ip() {
local_ip=$(hostname -I | awk '{print $1}')
echo "$local_ip"
}
function setup_k3s() {
local disable_proxy="--disable-kube-proxy"
local disable_cni="--flannel-backend=none --disable-network-policy"
local default="--disable=traefik,servicelb --data-dir=/opt/rancher/k3s --kube-apiserver-arg service-node-port-range=0-50000"
sudo mkdir -pv /opt/rancher/k3s
ping -c 1 google.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "当前主机在国际网络上"
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=$version sh -s - $default
else
echo "当前主机在大陆网络上"
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_VERSION=$version INSTALL_K3S_MIRROR=cn sh -s - $default
fi
mkdir -pv ~/.kube/ && sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
}
function setup_helm()
{
ping -c 1 google.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "当前主机在国际网络上"
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
else
echo "当前主机在大陆网络上"
case `uname -m` in
x86_64) ARCH=amd64; ;;
aarch64) ARCH=arm64; ;;
loongarch64) ARCH=loongarch64; ;;
*) echo "un-supported arch, exit ..."; exit 1; ;;
esac
sudo rm -rf helm.tar.gz* /usr/local/bin/helm || echo true
sudo wget --no-check-certificate https://mirrors.onwalk.net/tools/linux-${ARCH}/helm.tar.gz && sudo tar -xvpf helm.tar.gz -C /usr/local/bin/
sudo chmod 755 /usr/local/bin/helm
fi
}
function setup_k3s_ingress() {
local ingress_ip=$(get_local_ip)
cat > value.yaml <<EOF
controller:
nginxplus: false
ingressClass: nginx
replicaCount: 2
service:
enabled: true
type: NodePort
externalIPs:
- $ingress_ip
EOF
cat > nginx-cm.yaml << EOF
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-nginx-ingress
namespace: ingress
data:
use-ssl-certificate-for-ingress: "false"
external-status-address: $ingress_ip
proxy-connect-timeout: 10s
proxy-read-timeout: 10s
client-header-buffer-size: 64k
client-body-buffer-size: 64k
client-max-body-size: 1000m
proxy-buffers: 8 32k
proxy-body-size: 1024m
proxy-buffer-size: 32k
proxy-connect-timeout: 10s
proxy-read-timeout: 10s
EOF
helm repo add nginx-stable https://helm.nginx.com/stable || echo true
helm repo up
kubectl create namespace ingress || echo true
helm upgrade --install nginx nginx-stable/nginx-ingress --version=0.15.0 --namespace ingress -f value.yaml
kubectl apply -f nginx-cm.yaml
kubectl patch svc nginx-nginx-ingress -n ingress --patch-file nginx-svc-patch.yaml
}
# Main script
setup_k3s
setup_helm
setup_k3s_ingress