Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 64 additions & 7 deletions hack/allocate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ main() {
( set -o pipefail; (serving && dns && networking) 2>&1 | sed -e 's/^/svr /')&
( set -o pipefail; (eventing && namespace) 2>&1 | sed -e 's/^/evt /')&
( set -o pipefail; registry 2>&1 | sed -e 's/^/reg /') &
( set -o pipefail; dapr_runtime 2>&1 | sed -e 's/^/dpr /')&
( set -o pipefail; (tekton && pac) 2>&1 | sed -e 's/^/tkt /')&
( set -o pipefail; dapr_runtime 2>&1 | sed -e 's/^/dpr /')&

local job
for job in $(jobs -p); do
Expand All @@ -57,22 +57,26 @@ main() {
}

kubernetes() {
sudo modprobe ip6_tables
cat <<EOF | $KIND create cluster --name=func --kubeconfig="${KUBECONFIG}" --wait=60s --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
ipFamily: ipv6
apiServerAddress: "::1"
nodes:
- role: control-plane
image: kindest/node:${kind_node_version}
extraPortMappings:
- containerPort: 80
hostPort: 80
listenAddress: "127.0.0.1"
listenAddress: "::1"
- containerPort: 443
hostPort: 443
listenAddress: "127.0.0.1"
listenAddress: "::1"
- containerPort: 30022
hostPort: 30022
listenAddress: "127.0.0.1"
listenAddress: "::1"
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:50000"]
Expand Down Expand Up @@ -128,6 +132,17 @@ dns() {
echo "${green}✅ DNS${reset}"
}

arr2yaml() {
echo -n '['
local e
local s=""
for e in "$@"; do
printf '%s"%s"' "$s" "$e";
s=", "
done
echo -n ']'
}

loadbalancer() {
echo "${blue}Installing Load Balancer (Metallb)${reset}"
$KUBECTL apply -f "https://raw.githubusercontent.com/metallb/metallb/v0.13.7/config/manifests/metallb-native.yaml"
Expand All @@ -138,7 +153,22 @@ loadbalancer() {
--timeout=300s

local kind_addr
local kind_addr6
local addr_array

kind_addr="$($CONTAINER_ENGINE container inspect func-control-plane | jq '.[0].NetworkSettings.Networks.kind.IPAddress' -r)"
kind_addr6="$($CONTAINER_ENGINE container inspect func-control-plane | jq '.[0].NetworkSettings.Networks.kind.GlobalIPv6Address' -r)"

addr_array=()

if [[ -n "$kind_addr" ]]; then
addr_array+=("$kind_addr/32");
fi

if [[ -n "$kind_addr6" ]]; then
addr_array+=("$kind_addr6/128");
fi


echo "Setting up address pool."
$KUBECTL apply -f - <<EOF
Expand All @@ -148,8 +178,7 @@ metadata:
name: example
namespace: metallb-system
spec:
addresses:
- ${kind_addr}-${kind_addr}
addresses: $(arr2yaml "${addr_array[@]}")
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
Expand All @@ -165,7 +194,7 @@ networking() {
echo "Version: ${contour_version}"

echo "Installing a configured Contour."
$KUBECTL apply -f "https://github.com/knative/net-contour/releases/download/knative-${contour_version}/contour.yaml"
$KUBECTL apply -f "$(cd "$(dirname "$0")" && pwd)/contour.yaml"
sleep 5
$KUBECTL wait pod --for=condition=Ready -l '!job-name' -n contour-external --timeout=10m

Expand Down Expand Up @@ -308,6 +337,34 @@ dapr_runtime() {
dapr_flags="--image-registry=ghcr.io/dapr --log-as-json"
fi

# hack to patch dapr to work on IPv6
(sleep 5;
$KUBECTL patch statefulset dapr-scheduler-server -n dapr-system --patch-file /dev/stdin <<EOF
{
"spec": {
"template": {
"spec": {
"containers": [
{
"name": "dapr-scheduler-server",
"env": [
{
"name": "DAPR_HOST_IP",
"valueFrom": {
"fieldRef": {
"fieldPath": "status.podIP"
}
}
}
]
}
]
}
}
}
}
EOF
)&
# Install Dapr Runtime
# shellcheck disable=SC2086
$DAPR init ${dapr_flags} --kubernetes --wait
Expand Down
Loading
Loading