8 changed files with 288 additions and 5 deletions
@ -0,0 +1,252 @@
|
||||
#!/bin/bash |
||||
|
||||
. /etc/sysconfig/heat-params |
||||
|
||||
set -ex |
||||
|
||||
step="nginx-ingress" |
||||
printf "Starting to run ${step}\n" |
||||
|
||||
### Configuration |
||||
############################################################################### |
||||
CHART_NAME="nginx-ingress" |
||||
CHART_VERSION="1.4.0" |
||||
|
||||
if [ "$(echo ${INGRESS_CONTROLLER} | tr '[:upper:]' '[:lower:]')" = "nginx" ]; then |
||||
|
||||
HELM_MODULE_CONFIG_FILE="/srv/magnum/kubernetes/helm/${CHART_NAME}.yaml" |
||||
[ -f ${HELM_MODULE_CONFIG_FILE} ] || { |
||||
echo "Writing File: ${HELM_MODULE_CONFIG_FILE}" |
||||
mkdir -p $(dirname ${HELM_MODULE_CONFIG_FILE}) |
||||
cat << EOF > ${HELM_MODULE_CONFIG_FILE} |
||||
--- |
||||
kind: ConfigMap |
||||
apiVersion: v1 |
||||
metadata: |
||||
name: ${CHART_NAME}-config |
||||
namespace: magnum-tiller |
||||
labels: |
||||
app: helm |
||||
data: |
||||
install-${CHART_NAME}.sh: | |
||||
#!/bin/bash |
||||
set -e |
||||
set -x |
||||
mkdir -p \${HELM_HOME} |
||||
cp /etc/helm/* \${HELM_HOME} |
||||
|
||||
# HACK - Force wait because of bug https://github.com/helm/helm/issues/5170 |
||||
until helm init --client-only --wait |
||||
do |
||||
sleep 5s |
||||
done |
||||
helm repo update |
||||
|
||||
if [[ \$(helm history ${CHART_NAME} | grep ${CHART_NAME}) ]]; then |
||||
echo "${CHART_NAME} already installed on server. Continue..." |
||||
exit 0 |
||||
else |
||||
helm install stable/${CHART_NAME} --namespace kube-system --name ${CHART_NAME} --version v${CHART_VERSION} --values /opt/magnum/install-${CHART_NAME}-values.yaml |
||||
fi |
||||
|
||||
install-${CHART_NAME}-values.yaml: | |
||||
controller: |
||||
name: controller |
||||
image: |
||||
repository: ${CONTAINER_INFRA_PREFIX:-quay.io/kubernetes-ingress-controller/}nginx-ingress-controller |
||||
tag: ${NGINX_INGRESS_CONTROLLER_TAG} |
||||
pullPolicy: IfNotPresent |
||||
runAsUser: 33 |
||||
config: {} |
||||
headers: {} |
||||
hostNetwork: true |
||||
dnsPolicy: ClusterFirst |
||||
daemonset: |
||||
useHostPort: true |
||||
hostPorts: |
||||
http: 80 |
||||
https: 443 |
||||
stats: 18080 |
||||
defaultBackendService: "" |
||||
electionID: ingress-controller-leader |
||||
ingressClass: nginx |
||||
podLabels: {} |
||||
publishService: |
||||
enabled: false |
||||
pathOverride: "" |
||||
scope: |
||||
enabled: false |
||||
namespace: "" # defaults to .Release.Namespace |
||||
extraArgs: |
||||
enable-ssl-passthrough: "" |
||||
extraEnvs: [] |
||||
kind: DaemonSet |
||||
updateStrategy: {} |
||||
minReadySeconds: 0 |
||||
tolerations: [] |
||||
affinity: {} |
||||
nodeSelector: |
||||
role: ${INGRESS_CONTROLLER_ROLE} |
||||
livenessProbe: |
||||
failureThreshold: 3 |
||||
initialDelaySeconds: 10 |
||||
periodSeconds: 10 |
||||
successThreshold: 1 |
||||
timeoutSeconds: 1 |
||||
port: 10254 |
||||
readinessProbe: |
||||
failureThreshold: 3 |
||||
initialDelaySeconds: 10 |
||||
periodSeconds: 10 |
||||
successThreshold: 1 |
||||
timeoutSeconds: 1 |
||||
port: 10254 |
||||
podAnnotations: {} |
||||
replicaCount: 1 |
||||
minAvailable: 1 |
||||
resources: |
||||
limits: |
||||
cpu: 100m |
||||
memory: 64Mi |
||||
requests: |
||||
cpu: 100m |
||||
memory: 64Mi |
||||
autoscaling: |
||||
enabled: false |
||||
customTemplate: |
||||
configMapName: "" |
||||
configMapKey: "" |
||||
service: |
||||
annotations: {} |
||||
labels: {} |
||||
clusterIP: "" |
||||
externalIPs: [] |
||||
loadBalancerIP: "" |
||||
loadBalancerSourceRanges: [] |
||||
enableHttp: true |
||||
enableHttps: true |
||||
externalTrafficPolicy: "" |
||||
healthCheckNodePort: 0 |
||||
targetPorts: |
||||
http: http |
||||
https: https |
||||
type: NodePort |
||||
nodePorts: |
||||
http: "32080" |
||||
https: "32443" |
||||
extraContainers: [] |
||||
extraVolumeMounts: [] |
||||
extraVolumes: [] |
||||
extraInitContainers: [] |
||||
stats: |
||||
enabled: false |
||||
service: |
||||
annotations: {} |
||||
clusterIP: "" |
||||
externalIPs: [] |
||||
loadBalancerIP: "" |
||||
loadBalancerSourceRanges: [] |
||||
servicePort: 18080 |
||||
type: ClusterIP |
||||
metrics: |
||||
enabled: false |
||||
service: |
||||
annotations: {} |
||||
clusterIP: "" |
||||
externalIPs: [] |
||||
loadBalancerIP: "" |
||||
loadBalancerSourceRanges: [] |
||||
servicePort: 9913 |
||||
type: ClusterIP |
||||
serviceMonitor: |
||||
enabled: false |
||||
additionalLabels: {} |
||||
namespace: "" |
||||
lifecycle: {} |
||||
priorityClassName: "" |
||||
revisionHistoryLimit: 10 |
||||
defaultBackend: |
||||
enabled: true |
||||
name: default-backend |
||||
image: |
||||
repository: ${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}defaultbackend |
||||
tag: "1.4" |
||||
pullPolicy: IfNotPresent |
||||
extraArgs: {} |
||||
port: 8080 |
||||
tolerations: [] |
||||
affinity: {} |
||||
podLabels: {} |
||||
nodeSelector: {} |
||||
podAnnotations: {} |
||||
replicaCount: 1 |
||||
minAvailable: 1 |
||||
resources: |
||||
limits: |
||||
cpu: 10m |
||||
memory: 20Mi |
||||
requests: |
||||
cpu: 10m |
||||
memory: 20Mi |
||||
service: |
||||
annotations: {} |
||||
clusterIP: "" |
||||
externalIPs: [] |
||||
loadBalancerIP: "" |
||||
loadBalancerSourceRanges: [] |
||||
servicePort: 80 |
||||
type: ClusterIP |
||||
priorityClassName: "" |
||||
rbac: |
||||
create: true |
||||
podSecurityPolicy: |
||||
enabled: false |
||||
serviceAccount: |
||||
create: true |
||||
name: |
||||
imagePullSecrets: [] |
||||
tcp: {} |
||||
udp: {} |
||||
--- |
||||
apiVersion: batch/v1 |
||||
kind: Job |
||||
metadata: |
||||
name: install-${CHART_NAME}-job |
||||
namespace: magnum-tiller |
||||
spec: |
||||
backoffLimit: 5 |
||||
template: |
||||
spec: |
||||
serviceAccountName: tiller |
||||
containers: |
||||
- name: config-helm |
||||
image: ${CONTAINER_INFRA_PREFIX:-docker.io/openstackmagnum/}helm-client:dev |
||||
command: |
||||
- bash |
||||
args: |
||||
- /opt/magnum/install-${CHART_NAME}.sh |
||||
env: |
||||
- name: HELM_HOME |
||||
value: /helm_home |
||||
- name: TILLER_NAMESPACE |
||||
value: magnum-tiller |
||||
- name: HELM_TLS_ENABLE |
||||
value: "true" |
||||
volumeMounts: |
||||
- name: install-${CHART_NAME}-config |
||||
mountPath: /opt/magnum/ |
||||
- mountPath: /etc/helm |
||||
name: helm-client-certs |
||||
restartPolicy: Never |
||||
volumes: |
||||
- name: install-${CHART_NAME}-config |
||||
configMap: |
||||
name: ${CHART_NAME}-config |
||||
- name: helm-client-certs |
||||
secret: |
||||
secretName: helm-client-secret |
||||
EOF |
||||
} |
||||
fi |
||||
|
||||
printf "Finished running ${step}\n" |
@ -0,0 +1,6 @@
|
||||
--- |
||||
features: |
||||
- | |
||||
Add nginx as an additional Ingress controller option for Kubernetes. |
||||
Installation is done via the upstream nginx-ingress helm chart, and |
||||
selection can be done via label ingress_controller=nginx. |
Loading…
Reference in new issue