Last active
February 28, 2025 10:11
-
-
Save ruo91/3a272284a5cb67cd982a8e44d0836c76 to your computer and use it in GitHub Desktop.
OpenShift 4x - Example: Nginx Ingress Controller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
kind: Secret | |
apiVersion: v1 | |
metadata: | |
name: default-tls | |
namespace: nginx-ingress | |
data: | |
tls.crt: base64-encode | |
tls.key: base64-encode | |
type: kubernetes.io/tls | |
--- | |
apiVersion: charts.nginx.org/v1alpha1 | |
kind: NginxIngress | |
metadata: | |
name: nginxingress | |
spec: | |
# Default values copied from <project_dir>/deployments/helm-chart/values.yaml | |
controller: | |
name: controller | |
kind: deployment | |
selectorLabels: {} | |
annotations: {} | |
nginxplus: false | |
mgmt: | |
licenseTokenSecretName: license-token | |
nginxReloadTimeout: 60000 | |
appprotect: | |
enable: false | |
# logLevel: fatal | |
appprotectdos: | |
enable: false | |
debug: false | |
maxWorkers: 0 | |
maxDaemons: 0 | |
memory: 0 | |
hostNetwork: false | |
hostPort: | |
enable: false | |
http: 80 | |
https: 443 | |
containerPort: | |
http: 80 | |
https: 443 | |
dnsPolicy: ClusterFirst | |
nginxDebug: false | |
shareProcessNamespace: false | |
logLevel: info | |
logFormat: glog | |
customPorts: [] | |
image: | |
repository: quay.io/nginx/nginx-ingress | |
tag: "4.0.1-ubi" | |
#digest: "sha256:5b0dce1d8c89e58bb88b2b4c2e225a1250a8aeda828bfaa6425edadb392b22f8" | |
pullPolicy: IfNotPresent | |
lifecycle: {} | |
customConfigMap: "" | |
config: | |
name: nginx-config | |
annotations: {} | |
entries: {} | |
defaultTLS: | |
#cert: "" | |
#key: "" | |
secret: "nginx-ingress/default-tls" | |
wildcardTLS: | |
#cert: "" | |
#key: "" | |
secret: "nginx-ingress/default-tls" | |
#nodeSelector: {} | |
terminationGracePeriodSeconds: 30 | |
autoscaling: | |
enabled: false | |
annotations: {} | |
minReplicas: 1 | |
maxReplicas: 3 | |
targetCPUUtilizationPercentage: 50 | |
targetMemoryUtilizationPercentage: 50 | |
behavior: {} | |
resources: | |
requests: | |
cpu: 100m | |
memory: 128Mi | |
# limits: | |
# cpu: 1 | |
# memory: 1Gi | |
initContainerResources: | |
requests: | |
cpu: 100m | |
memory: 128Mi | |
# limits: | |
# cpu: 1 | |
# memory: 1Gi | |
tolerations: | |
- effect: NoSchedule | |
key: node-role.kubernetes.io/infra | |
operator: Exists | |
affinity: | |
nodeAffinity: | |
requiredDuringSchedulingIgnoredDuringExecution: | |
nodeSelectorTerms: | |
- matchExpressions: | |
- key: node-role.kubernetes.io/infra | |
operator: Exists | |
topologySpreadConstraints: [] | |
#- maxSkew: 2 | |
# topologyKey: node-role.kubernetes.io/infra | |
# whenUnsatisfiable: DoNotSchedule | |
# labelSelector: | |
# matchLabels: | |
# app.kubernetes.io/name: alertmanager | |
# #env: [] | |
# - name: MY_VAR | |
# value: myvalue | |
volumes: [] | |
# - name: extra-conf | |
# configMap: | |
# name: extra-conf | |
volumeMounts: [] | |
# - name: extra-conf | |
# mountPath: /etc/nginx/conf.d/extra.conf | |
# subPath: extra.conf | |
initContainers: [] | |
# - name: init-container | |
# image: busybox:1.34 | |
# command: ['sh', '-c', 'echo this is initial setup!'] | |
minReadySeconds: 0 | |
podDisruptionBudget: | |
enabled: false | |
annotations: {} | |
# minAvailable: 1 | |
# maxUnavailable: 1 | |
strategy: {} | |
extraContainers: [] | |
# - name: container | |
# image: busybox:1.34 | |
# command: ['sh', '-c', 'echo this is a sidecar!'] | |
replicaCount: 2 | |
ingressClass: | |
name: nginx | |
create: true | |
setAsDefaultIngress: false | |
watchNamespace: "" | |
watchNamespaceLabel: "" | |
watchSecretNamespace: "" | |
enableCustomResources: true | |
enableOIDC: false | |
enableTLSPassthrough: true | |
tlsPassthroughPort: 443 | |
enableCertManager: false | |
enableExternalDNS: false | |
globalConfiguration: | |
create: false | |
spec: {} | |
# listeners: | |
# - name: dns-udp | |
# port: 5353 | |
# protocol: UDP | |
# - name: dns-tcp | |
# port: 5353 | |
# protocol: TCP | |
enableSnippets: false | |
healthStatus: false | |
healthStatusURI: "/nginx-health" | |
nginxStatus: | |
enable: true | |
port: 8080 | |
allowCidrs: "127.0.0.1" | |
service: | |
create: true | |
#type: LoadBalancer | |
type: NodePort | |
externalTrafficPolicy: Local | |
annotations: {} | |
extraLabels: {} | |
loadBalancerIP: "" | |
clusterIP: "" | |
externalIPs: [] | |
loadBalancerSourceRanges: [] | |
# allocateLoadBalancerNodePorts: false | |
# ipFamilyPolicy: SingleStack | |
# ipFamilies: | |
# - IPv6 | |
httpPort: | |
enable: true | |
#port: 80 | |
nodePort: 30080 | |
targetPort: 80 | |
httpsPort: | |
enable: true | |
#port: 443 | |
nodePort: 30443 | |
targetPort: 443 | |
customPorts: [] | |
serviceAccount: | |
annotations: {} | |
name: nginx-ingress | |
imagePullSecretName: "" | |
imagePullSecretsNames: [] | |
reportIngressStatus: | |
enable: true | |
# externalService: nginx-ingress | |
ingressLink: "" | |
enableLeaderElection: true | |
leaderElectionLockName: "nginx-ingress-leader" | |
annotations: {} | |
pod: | |
annotations: {} | |
extraLabels: {} | |
# priorityClassName: "" | |
readyStatus: | |
enable: true | |
port: 8081 | |
initialDelaySeconds: 0 | |
enableLatencyMetrics: false | |
disableIPV6: false | |
defaultHTTPListenerPort: 80 | |
defaultHTTPSListenerPort: 443 | |
readOnlyRootFilesystem: false | |
enableSSLDynamicReload: true | |
rbac: | |
create: true | |
prometheus: | |
create: true | |
port: 9113 | |
secret: "" | |
scheme: http | |
service: | |
create: false | |
labels: | |
service: "nginx-ingress-prometheus-service" | |
serviceMonitor: | |
create: false | |
labels: {} | |
selectorMatchLabels: | |
service: "nginx-ingress-prometheus-service" | |
endpoints: | |
- port: prometheus | |
serviceInsight: | |
create: false | |
port: 9114 | |
secret: "" | |
scheme: http | |
nginxServiceMesh: | |
enable: false | |
enableEgress: false | |
--- | |
apiVersion: networking.k8s.io/v1 | |
kind: Ingress | |
metadata: | |
name: nginx-http | |
namespace: sample | |
annotations: | |
nginx.ingress.kubernetes.io/rewrite-target: / | |
spec: | |
ingressClassName: nginx | |
rules: | |
- host: nginx-http.apps.ocp4.local | |
http: | |
paths: | |
- path: / | |
pathType: Prefix | |
backend: | |
service: | |
name: nginx | |
port: | |
number: 80 | |
--- | |
apiVersion: networking.k8s.io/v1 | |
kind: Ingress | |
metadata: | |
name: nginx-https | |
namespace: sample | |
annotations: | |
nginx.ingress.kubernetes.io/rewrite-target: / | |
spec: | |
ingressClassName: nginx | |
tls: | |
- hosts: | |
- nginx-https.apps.ocp4.local | |
secretName: nginx-tls | |
rules: | |
- host: nginx-https.apps.ocp4.local | |
http: | |
paths: | |
- path: / | |
pathType: Prefix | |
backend: | |
service: | |
name: nginx | |
port: | |
number: 80 | |
--- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment