agones.dev/agones@v1.53.0/install/helm/agones/templates/ping.yaml (about)

     1  # Copyright 2018 Google LLC All Rights Reserved.
     2  #
     3  # Licensed under the Apache License, Version 2.0 (the "License");
     4  # you may not use this file except in compliance with the License.
     5  # You may obtain a copy of the License at
     6  #
     7  #     http://www.apache.org/licenses/LICENSE-2.0
     8  #
     9  # Unless required by applicable law or agreed to in writing, software
    10  # distributed under the License is distributed on an "AS IS" BASIS,
    11  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  # See the License for the specific language governing permissions and
    13  # limitations under the License.
    14  
    15  {{- if .Values.agones.ping.install }}
    16  apiVersion: apps/v1
    17  kind: Deployment
    18  metadata:
    19    name: agones-ping
    20    namespace: {{ .Release.Namespace }}
    21    labels:
    22      component: ping
    23      app: {{ template "agones.name" . }}
    24      chart: {{ template "agones.chart" . }}
    25      release: {{ .Release.Name }}
    26      heritage: {{ .Release.Service }}
    27  spec:
    28  {{- if .Values.agones.ping.updateStrategy }}
    29    strategy:
    30  {{- toYaml .Values.agones.ping.updateStrategy | nindent 4}}
    31  {{- end }}
    32    selector:
    33      matchLabels:
    34        agones.dev/role: ping
    35        app: {{ template "agones.name" . }}
    36        release: {{ .Release.Name }}
    37        heritage: {{ .Release.Service }}
    38    replicas: {{ .Values.agones.ping.replicas }}
    39    template:
    40      metadata:
    41        labels:
    42          agones.dev/role: ping
    43          app: {{ template "agones.name" . }}
    44          release: {{ .Release.Name }}
    45          heritage: {{ .Release.Service }}
    46  {{- if .Values.agones.ping.annotations }}
    47        annotations:
    48  {{- toYaml .Values.agones.ping.annotations | nindent 8 }}
    49  {{- end }}
    50      spec:
    51        {{- if .Values.agones.ping.topologySpreadConstraints }}
    52        topologySpreadConstraints:
    53          {{- toYaml .Values.agones.ping.topologySpreadConstraints | nindent 8 }}
    54        {{- end }}
    55        affinity:
    56        {{- if .Values.agones.ping.affinity }}
    57        {{- if .Values.agones.requireDedicatedNodes }}
    58        {{- fail "agones.ping.affinity and agones.requireDedicatedNodes cannot be set at the same time!" }}
    59        {{- end}}
    60        {{- end}}
    61        {{- if .Values.agones.ping.affinity }}
    62  {{ toYaml .Values.agones.ping.affinity | indent 8 }}
    63        {{- else}}
    64          nodeAffinity:
    65            {{- if .Values.agones.requireDedicatedNodes }}
    66            requiredDuringSchedulingIgnoredDuringExecution:
    67              nodeSelectorTerms:
    68              - matchExpressions:
    69            {{- else}}
    70            preferredDuringSchedulingIgnoredDuringExecution:
    71            - weight: 1
    72              preference:
    73                matchExpressions:
    74            {{- end }}
    75                - key: agones.dev/agones-system
    76                  operator: Exists
    77        {{- end }}
    78        {{- if .Values.agones.ping.nodeSelector }}
    79        nodeSelector:
    80  {{ toYaml .Values.agones.ping.nodeSelector | indent 8 }}
    81        {{- end }}
    82        {{- if .Values.agones.ping.tolerations }}
    83        tolerations:
    84  {{ toYaml .Values.agones.ping.tolerations | indent 8 }}
    85        {{- end }}
    86        {{- if .Values.agones.createPriorityClass }}
    87        priorityClassName: {{ .Values.agones.priorityClassName }}
    88        {{- end }}
    89        containers:
    90          - name: agones-ping
    91            image: "{{ .Values.agones.image.registry }}/{{ .Values.agones.image.ping.name}}:{{ default .Values.agones.image.tag .Values.agones.image.ping.tag }}"
    92            imagePullPolicy: {{ .Values.agones.image.ping.pullPolicy }}
    93            securityContext:
    94              runAsNonRoot: true
    95              runAsUser: 1000
    96              allowPrivilegeEscalation: false
    97  {{- if .Values.agones.ping.resources }}
    98            resources:
    99  {{ toYaml .Values.agones.ping.resources | indent 12 }}
   100  {{- end }}
   101            livenessProbe:
   102              httpGet:
   103                port: 8080
   104                path: /live
   105              initialDelaySeconds: {{ .Values.agones.ping.healthCheck.initialDelaySeconds }}
   106              periodSeconds: {{ .Values.agones.ping.healthCheck.periodSeconds }}
   107              failureThreshold: {{ .Values.agones.ping.healthCheck.failureThreshold }}
   108              timeoutSeconds: {{ .Values.agones.ping.healthCheck.timeoutSeconds }}
   109            env:
   110            - name: HTTP_RESPONSE
   111              value: {{ .Values.agones.ping.http.response | quote }}
   112            - name: UDP_RATE_LIMIT
   113              value: {{ .Values.agones.ping.udp.rateLimit | quote }}
   114            - name: FEATURE_GATES
   115              value: {{ .Values.agones.featureGates | quote }}
   116  {{- if .Values.agones.image.controller.pullSecret }}
   117        imagePullSecrets:
   118          - name: {{.Values.agones.image.controller.pullSecret}}
   119  {{- end }}
   120  {{- if .Values.agones.ping.pdb.enabled }}
   121  ---
   122  apiVersion: policy/v1
   123  kind: PodDisruptionBudget
   124  metadata:
   125    name: agones-ping-pdb
   126  spec:
   127  {{- if .Values.agones.ping.pdb.minAvailable }}
   128  {{- if .Values.agones.ping.pdb.maxUnavailable }}
   129  {{- fail "minAvailable and maxUnavailable are mutually exclusive!" }}
   130  {{- end}}
   131  {{- end}}
   132    minAvailable: {{ .Values.agones.ping.pdb.minAvailable }}
   133    maxUnavailable: {{ .Values.agones.ping.pdb.maxUnavailable }}
   134    selector:
   135      matchLabels:
   136        agones.dev/role: ping
   137        app: {{ template "agones.name" . }}
   138        release: {{ .Release.Name }}
   139        heritage: {{ .Release.Service }}
   140  {{- end }}
   141  {{- if .Values.agones.ping.http.expose }}
   142  ---
   143  apiVersion: v1
   144  kind: Service
   145  metadata:
   146    name: agones-ping-http-service
   147    namespace: {{ .Release.Namespace }}
   148    labels:
   149      component: ping
   150      app: {{ template "agones.name" . }}
   151      chart: {{ template "agones.chart" . }}
   152      release: {{ .Release.Name }}
   153      heritage: {{ .Release.Service }}
   154  {{- if .Values.agones.ping.http.annotations }}
   155    annotations:
   156  {{ toYaml .Values.agones.ping.http.annotations | indent 4 }}
   157  {{- end }}
   158  spec:
   159    selector:
   160      agones.dev/role: ping
   161  {{- if .Values.agones.ping.http.ipFamilyPolicy }}
   162    ipFamilyPolicy: {{ .Values.agones.ping.http.ipFamilyPolicy }}
   163  {{- end }}
   164  {{- if .Values.agones.ping.http.ipFamilies }}
   165    ipFamilies: {{ toYaml .Values.agones.ping.http.ipFamilies | nindent 4 }}
   166  {{- end }}
   167    ports:
   168      - port: {{ .Values.agones.ping.http.port }}
   169        name: http
   170        targetPort: 8080
   171        {{- if eq .Values.agones.ping.http.serviceType "NodePort" }}
   172        nodePort: {{ .Values.agones.ping.http.nodePort }}
   173        {{- end }}
   174        protocol: TCP
   175    type: {{ .Values.agones.ping.http.serviceType }}
   176  {{- if eq .Values.agones.ping.http.serviceType "LoadBalancer" }}
   177    {{- if .Values.agones.ping.http.loadBalancerIP }}
   178    loadBalancerIP: {{ .Values.agones.ping.http.loadBalancerIP }}
   179    {{- end }}
   180    externalTrafficPolicy: {{ .Values.agones.ping.http.externalTrafficPolicy }}
   181    {{- if .Values.agones.ping.http.loadBalancerSourceRanges }}
   182    loadBalancerSourceRanges:
   183  {{ toYaml .Values.agones.ping.http.loadBalancerSourceRanges | indent 4 }}
   184    {{- end }}
   185  {{- end }}
   186    {{- end }}
   187  
   188  {{- if .Values.agones.ping.udp.expose }}
   189  ---
   190  apiVersion: v1
   191  kind: Service
   192  metadata:
   193    name: agones-ping-udp-service
   194    namespace: {{ .Release.Namespace }}
   195    labels:
   196      component: ping
   197      app: {{ template "agones.name" . }}
   198      chart: {{ template "agones.chart" . }}
   199      release: {{ .Release.Name }}
   200      heritage: {{ .Release.Service }}
   201  {{- if .Values.agones.ping.udp.annotations }}
   202    annotations:
   203  {{ toYaml .Values.agones.ping.udp.annotations | indent 4 }}
   204  {{- end }}
   205  spec:
   206    selector:
   207      agones.dev/role: ping
   208  {{- if .Values.agones.ping.udp.ipFamilyPolicy }}
   209    ipFamilyPolicy: {{ .Values.agones.ping.udp.ipFamilyPolicy }}
   210  {{- end }}
   211  {{- if .Values.agones.ping.udp.ipFamilies }}
   212    ipFamilies: {{ toYaml .Values.agones.ping.udp.ipFamilies | nindent 4 }}
   213  {{- end }}
   214    ports:
   215      - port: {{ .Values.agones.ping.udp.port }}
   216        name: udp
   217        targetPort: 8080
   218        protocol: UDP
   219        {{- if eq .Values.agones.ping.udp.serviceType "NodePort" }}
   220        nodePort: {{ .Values.agones.ping.udp.nodePort }}
   221        {{- end }}
   222    type: {{ .Values.agones.ping.udp.serviceType }}
   223  {{- if eq .Values.agones.ping.udp.serviceType "LoadBalancer" }}
   224    {{- if .Values.agones.ping.udp.loadBalancerIP }}
   225    loadBalancerIP: {{ .Values.agones.ping.udp.loadBalancerIP }}
   226    {{- end }}
   227    externalTrafficPolicy: {{ .Values.agones.ping.udp.externalTrafficPolicy }}
   228    {{- if .Values.agones.ping.udp.loadBalancerSourceRanges }}
   229    loadBalancerSourceRanges:
   230  {{ toYaml .Values.agones.ping.udp.loadBalancerSourceRanges | indent 4 }}
   231    {{- end }}
   232  {{- end }}
   233    {{- end }}
   234  
   235  {{- end }}