Skip to content

Commit

Permalink
Add federation controller manager to federation e2es
Browse files Browse the repository at this point in the history
  • Loading branch information
nikhiljindal committed Jun 2, 2016
1 parent ee412ef commit d2ea7a2
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 2 deletions.
4 changes: 4 additions & 0 deletions build/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ kube::build::get_docker_wrapped_binaries() {
kube-scheduler,busybox
kube-proxy,gcr.io/google_containers/debian-iptables-amd64:v3
federation-apiserver,busybox
federation-controller-manager,busybox
);;
"arm")
local targets=(
Expand All @@ -107,6 +108,7 @@ kube::build::get_docker_wrapped_binaries() {
kube-scheduler,armel/busybox
kube-proxy,gcr.io/google_containers/debian-iptables-arm:v3
federation-apiserver,armel/busybox
federation-controller-manager,armel/busybox
);;
"arm64")
local targets=(
Expand All @@ -115,6 +117,7 @@ kube::build::get_docker_wrapped_binaries() {
kube-scheduler,aarch64/busybox
kube-proxy,gcr.io/google_containers/debian-iptables-arm64:v3
federation-apiserver,aarch64/busybox
federation-controller-manager,aarch64/busybox
);;
"ppc64le")
local targets=(
Expand All @@ -123,6 +126,7 @@ kube::build::get_docker_wrapped_binaries() {
kube-scheduler,ppc64le/busybox
kube-proxy,gcr.io/google_containers/debian-iptables-ppc64le:v3
federation-apiserver,ppc64le/busybox
federation-controller-manager,ppc64lebusybox
);;
esac

Expand Down
25 changes: 24 additions & 1 deletion federation/cluster/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ function create-federated-api-objects {
export FEDERATION_APISERVER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/federation-apiserver"
export FEDERATION_APISERVER_IMAGE_TAG="${FEDERATION_IMAGE_TAG:-$(cat ${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin/federation-apiserver.docker_tag)}"

export FEDERATION_CONTROLLER_MANAGER_DEPLOYMENT_NAME="federation-controller-manager"
export FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO="${FEDERATION_PUSH_REPO_BASE}/federation-controller-manager"
export FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG="${FEDERATION_IMAGE_TAG:-$(cat ${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin/federation-controller-manager.docker_tag)}"

export FEDERATION_SERVICE_CIDR=${FEDERATION_SERVICE_CIDR:-"10.10.0.0/24"}

#Only used for providers that require a nodeport service (vagrant for now)
Expand Down Expand Up @@ -104,6 +108,7 @@ function create-federated-api-objects {
export FEDERATION_API_KNOWN_TOKENS="${FEDERATION_API_TOKEN},admin,admin"

$template "${manifests_root}/federation-apiserver-"{deployment,secrets}".yaml" | $host_kubectl create -f -
$template "${manifests_root}/federation-controller-manager-deployment.yaml" | $host_kubectl create -f -

# Don't finish provisioning until federation-apiserver pod is running
for i in {1..30};do
Expand All @@ -123,6 +128,24 @@ function create-federated-api-objects {
sleep 4
done

# Verify that federation-controller-manager pod is running.
for i in {1..30};do
#TODO(colhom): in the future this needs to scale out for N pods. This assumes just one pod
phase="$($host_kubectl get -o=jsonpath pods -lapp=federated-cluster,module=federation-controller-manager --template '{.items[*].status.phase}')"
echo "Waiting for federation-controller-manager to be running...(phase= $phase)"
if [[ "$phase" == "Running" ]];then
echo "federation-controller-manager pod is running!"
break
fi

if [[ $i -eq 30 ]];then
echo "federation-controller-manager pod is not running! giving up."
exit 1
fi

sleep 4
done

CONTEXT=federated-cluster \
KUBE_BEARER_TOKEN="$FEDERATION_API_TOKEN" \
SECONDARY_KUBECONFIG=true \
Expand All @@ -137,7 +160,7 @@ function create-federated-api-objects {
# FEDERATION_IMAGE_TAG: push all federated images with this tag. Used for ci testing
function push-federated-images {
: "${FEDERATION_PUSH_REPO_BASE?Must set FEDERATION_PUSH_REPO_BASE env var}"
local FEDERATION_BINARIES=${FEDERATION_BINARIES:-'federation-apiserver'}
local FEDERATION_BINARIES=${FEDERATION_BINARIES:-"federation-apiserver federation-controller-manager"}

local imageFolder="${KUBE_ROOT}/_output/${KUBE_BUILD_STAGE}/server/${KUBE_PLATFORM}-${KUBE_ARCH}/kubernetes/server/bin"

Expand Down
17 changes: 17 additions & 0 deletions federation/manifests/federation-apiserver-cluster-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: v1
kind: Service
metadata:
name: {{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}
namespace: {{.FEDERATION_NAMESPACE}}
labels:
app: federated-cluster
spec:
type: ClusterIP
selector:
app: federated-cluster
module: federation-apiserver
ports:
- name: https
protocol: TCP
port: 443
targetPort: 443
1 change: 0 additions & 1 deletion federation/manifests/federation-apiserver-deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ spec:
- --service-cluster-ip-range={{.FEDERATION_SERVICE_CIDR}}
- --secure-port=443
- --advertise-address={{.FEDERATION_API_HOST}}
- --admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota
- --token-auth-file=/srv/kubernetes/known-tokens.csv
ports:
- containerPort: 443
Expand Down
31 changes: 31 additions & 0 deletions federation/manifests/federation-controller-manager-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{.FEDERATION_CONTROLLER_MANAGER_DEPLOYMENT_NAME}}
namespace: {{.FEDERATION_NAMESPACE}}
labels:
app: federated-cluster
spec:
template:
metadata:
name: federation-controller-manager
labels:
app: federated-cluster
module: federation-controller-manager
spec:
containers:
- name: controller-manager
image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}}
command:
- /usr/local/bin/federation-controller-manager
- --master={{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443
ports:
- containerPort: 443
name: https
- containerPort: 8080
name: local
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
1 change: 1 addition & 0 deletions hack/lib/golang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ readonly KUBE_STATIC_LIBRARIES=(
kube-proxy
kubectl
federation-apiserver
federation-controller-manager
)

kube::golang::is_statically_linked_library() {
Expand Down

0 comments on commit d2ea7a2

Please sign in to comment.