Migration e2e installation to helm (#5086)
This commit is contained in:
parent
4b5c39e97b
commit
37c24b0df5
46 changed files with 321 additions and 725 deletions
|
|
@ -36,50 +36,160 @@ function on_exit {
|
|||
}
|
||||
trap on_exit EXIT
|
||||
|
||||
CLUSTER_WIDE="$DIR/cluster-wide-$NAMESPACE"
|
||||
cat << EOF | kubectl apply --namespace=$NAMESPACE -f -
|
||||
# Required for e2e tcp tests
|
||||
kind: ConfigMap
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: tcp-services
|
||||
namespace: $NAMESPACE
|
||||
labels:
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
|
||||
mkdir "$CLUSTER_WIDE"
|
||||
---
|
||||
|
||||
cat << EOF > "$CLUSTER_WIDE/kustomization.yaml"
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
bases:
|
||||
- ../cluster-wide
|
||||
nameSuffix: "-$NAMESPACE"
|
||||
EOF
|
||||
# Source: nginx-ingress/templates/controller-role.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
name: nginx-ingress-controller
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- namespaces
|
||||
verbs:
|
||||
- get
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
- pods
|
||||
- secrets
|
||||
- endpoints
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- update
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- "networking.k8s.io" # k8s 1.14+
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- "networking.k8s.io" # k8s 1.14+
|
||||
resources:
|
||||
- ingresses/status
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
resourceNames:
|
||||
- ingress-controller-leader-nginx
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- create
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- endpoints
|
||||
verbs:
|
||||
- create
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
---
|
||||
# Source: nginx-ingress/templates/controller-rolebinding.yaml
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
name: nginx-ingress-controller
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: nginx-ingress-controller
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: nginx-ingress
|
||||
namespace: $NAMESPACE
|
||||
|
||||
OVERLAY="$DIR/overlay-$NAMESPACE"
|
||||
|
||||
mkdir "$OVERLAY"
|
||||
|
||||
cat << EOF > "$OVERLAY/kustomization.yaml"
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: $NAMESPACE
|
||||
bases:
|
||||
- ../overlay
|
||||
- ../cluster-wide-$NAMESPACE
|
||||
EOF
|
||||
|
||||
# Use the namespace overlay if it was requested
|
||||
if [[ ! -z "$NAMESPACE_OVERLAY" && -d "$DIR/namespace-overlays/$NAMESPACE_OVERLAY" ]]; then
|
||||
echo "Namespace overlay $NAMESPACE_OVERLAY is being used for namespace $NAMESPACE"
|
||||
OVERLAY="$DIR/namespace-overlays/$NAMESPACE"
|
||||
mkdir "$OVERLAY"
|
||||
cat << EOF > "$OVERLAY/kustomization.yaml"
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: $NAMESPACE
|
||||
bases:
|
||||
- ../../namespace-overlays/$NAMESPACE_OVERLAY
|
||||
- ../../cluster-wide-$NAMESPACE
|
||||
helm install nginx-ingress stable/nginx-ingress \
|
||||
--namespace=$NAMESPACE \
|
||||
--wait \
|
||||
--values "$DIR/namespace-overlays/$NAMESPACE_OVERLAY/values.yaml"
|
||||
else
|
||||
cat << EOF | helm install nginx-ingress stable/nginx-ingress --namespace=$NAMESPACE --wait --values -
|
||||
controller:
|
||||
image:
|
||||
repository: ingress-controller/nginx-ingress-controller
|
||||
tag: 1.0.0-dev
|
||||
scope:
|
||||
enabled: true
|
||||
config:
|
||||
worker-processes: "1"
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 1
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 1
|
||||
podLabels:
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
service:
|
||||
type: NodePort
|
||||
labels:
|
||||
app.kubernetes.io/name: ingress-nginx
|
||||
app.kubernetes.io/part-of: ingress-nginx
|
||||
extraArgs:
|
||||
tcp-services-configmap: $NAMESPACE/tcp-services
|
||||
# e2e tests do not require information about ingress status
|
||||
update-status: "false"
|
||||
terminationGracePeriodSeconds: 1
|
||||
|
||||
defaultBackend:
|
||||
enabled: false
|
||||
|
||||
rbac:
|
||||
create: false
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
kubectl apply --kustomize "$OVERLAY"
|
||||
|
||||
# wait for the deployment and fail if there is an error before starting the execution of any test
|
||||
kubectl rollout status \
|
||||
--request-timeout=3m \
|
||||
--namespace $NAMESPACE \
|
||||
deployment nginx-ingress-controller
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue