agones.dev/agones@v1.54.0/install/helm/agones/values.schema.json (about)

     1  {
     2    "$schema": "http://json-schema.org/draft-07/schema#",
     3    "type": "object",
     4    "properties": {
     5      "agones": {
     6        "type": "object",
     7        "properties": {
     8          "featureGates": {
     9            "type": "string"
    10          },
    11          "rbacEnabled": {
    12            "type": "boolean"
    13          },
    14          "registerApiService": {
    15            "type": "boolean"
    16          },
    17          "registerServiceAccounts": {
    18            "type": "boolean"
    19          },
    20          "registerWebhooks": {
    21            "type": "boolean"
    22          },
    23          "cloudProduct": {
    24            "type": "string"
    25          },
    26          "createPriorityClass": {
    27            "type": "boolean"
    28          },
    29          "priorityClassName": {
    30            "type": "string"
    31          },
    32          "requireDedicatedNodes": {
    33            "type": "boolean"
    34          },
    35          "crds": {
    36            "type": "object",
    37            "properties": {
    38              "install": {
    39                "type": "boolean"
    40              },
    41              "cleanupOnDelete": {
    42                "type": "boolean"
    43              },
    44              "cleanupJobTTL": {
    45                "type": "integer",
    46                "minimum": 0
    47              }
    48            },
    49            "if": {
    50              "properties": {
    51                "cleanupOnDelete": {
    52                  "const": true
    53                }
    54              }
    55            },
    56            "then": {
    57              "properties": {
    58                "cleanupJobTTL": {
    59                  "$ref": "#/definitions/nonNegativeInteger"
    60                }
    61              },
    62              "required": [
    63                "cleanupJobTTL"
    64              ]
    65            }
    66          },
    67          "metrics": {
    68            "type": "object",
    69            "properties": {
    70              "prometheusEnabled": {
    71                "type": "boolean"
    72              },
    73              "prometheusServiceDiscovery": {
    74                "type": "boolean"
    75              },
    76              "stackdriverEnabled": {
    77                "type": "boolean"
    78              },
    79              "stackdriverProjectID": {
    80                "type": "string"
    81              },
    82              "stackdriverLabels": {
    83                "type": "string"
    84              },
    85              "serviceMonitor": {
    86                "type": "object",
    87                "properties": {
    88                  "enabled": {
    89                    "type": "boolean"
    90                  },
    91                  "interval": {
    92                    "type": "string"
    93                  }
    94                },
    95                "required": [
    96                  "enabled"
    97                ],
    98                "if": {
    99                  "properties": {
   100                    "enabled": {
   101                      "const": true
   102                    }
   103                  }
   104                },
   105                "then": {
   106                  "required": [
   107                    "interval"
   108                  ]
   109                }
   110              }
   111            },
   112            "allOf": [
   113              {
   114                "if": {
   115                  "properties": {
   116                    "prometheusEnabled": {
   117                      "const": true
   118                    }
   119                  }
   120                },
   121                "then": {
   122                  "required": [
   123                    "serviceMonitor"
   124                  ]
   125                }
   126              },
   127              {
   128                "if": {
   129                  "properties": {
   130                    "stackdriverProjectID": {
   131                      "$ref": "#/definitions/nonEmptyString"
   132                    }
   133                  }
   134                },
   135                "then": {
   136                  "properties": {
   137                    "stackdriverEnabled": {
   138                      "const": true
   139                    }
   140                  }
   141                }
   142              },
   143              {
   144                "if": {
   145                  "properties": {
   146                    "stackdriverLabels": {
   147                      "$ref": "#/definitions/nonEmptyString"
   148                    }
   149                  }
   150                },
   151                "then": {
   152                  "properties": {
   153                    "stackdriverEnabled": {
   154                      "const": true
   155                    }
   156                  }
   157                }
   158              }
   159            ],
   160            "required": [
   161              "serviceMonitor"
   162            ]
   163          },
   164          "serviceaccount": {
   165            "type": "object",
   166            "properties": {
   167              "allocator": {
   168                "type": "object",
   169                "properties": {
   170                  "name": {
   171                    "type": "string"
   172                  },
   173                  "annotations": {
   174                    "type": "object",
   175                    "additionalProperties": {
   176                      "type": "string"
   177                    }
   178                  },
   179                  "labels": {
   180                    "type": "object",
   181                    "additionalProperties": {
   182                      "type": "string"
   183                    }
   184                  }
   185                },
   186                "required": [
   187                  "name"
   188                ]
   189              },
   190              "controller": {
   191                "type": "object",
   192                "properties": {
   193                  "name": {
   194                    "type": "string"
   195                  },
   196                  "annotations": {
   197                    "type": "object",
   198                    "additionalProperties": {
   199                      "type": "string"
   200                    }
   201                  }
   202                },
   203                "required": [
   204                  "name"
   205                ]
   206              },
   207              "sdk": {
   208                "type": "object",
   209                "properties": {
   210                  "name": {
   211                    "type": "string"
   212                  },
   213                  "annotations": {
   214                    "type": "object",
   215                    "additionalProperties": {
   216                      "type": "object",
   217                      "additionalProperties": {
   218                        "type": "string"
   219                      }                  
   220                    }
   221                  }
   222                },
   223                "required": [
   224                  "name"
   225                ]
   226              }
   227            },
   228            "required": [
   229              "allocator",
   230              "controller",
   231              "sdk"
   232            ]
   233          },
   234          "image": {
   235            "type": "object",
   236            "properties": {
   237              "registry": {
   238                "type": "string"
   239              },
   240              "tag": {
   241                "type": "string"
   242              },
   243              "controller": {
   244                "type": "object",
   245                "properties": {
   246                  "name": {
   247                    "type": "string"
   248                  },
   249                  "pullPolicy": {
   250                    "type": "string",
   251                    "enum": [
   252                      "Always",
   253                      "IfNotPresent",
   254                      "Never"
   255                    ]
   256                  },
   257                  "tag": {
   258                    "type": "string"
   259                  }
   260                },
   261                "required": [
   262                  "name",
   263                  "pullPolicy"
   264                ]
   265              },
   266              "extensions": {
   267                "type": "object",
   268                "properties": {
   269                  "name": {
   270                    "type": "string"
   271                  },
   272                  "pullPolicy": {
   273                    "type": "string",
   274                    "enum": [
   275                      "Always",
   276                      "IfNotPresent",
   277                      "Never"
   278                    ]
   279                  },
   280                  "tag": {
   281                    "type": "string"
   282                  }
   283                },
   284                "required": [
   285                  "name",
   286                  "pullPolicy"
   287                ]
   288              },
   289              "sdk": {
   290                "type": "object",
   291                "properties": {
   292                  "name": {
   293                    "type": "string"
   294                  },
   295                  "cpuRequest": {
   296                    "$ref": "#/definitions/stringOrZero"
   297                  },
   298                  "cpuLimit": {
   299                    "$ref": "#/definitions/stringOrZero"
   300                  },
   301                  "memoryRequest": {
   302                    "$ref": "#/definitions/stringOrZero"
   303                  },
   304                  "memoryLimit": {
   305                    "$ref": "#/definitions/stringOrZero"
   306                  },
   307                  "alwaysPull": {
   308                    "type": "boolean"
   309                  },
   310                  "tag": {
   311                    "type": "string"
   312                  }
   313                },
   314                "required": [
   315                  "name"
   316                ]
   317              },
   318              "ping": {
   319                "type": "object",
   320                "properties": {
   321                  "name": {
   322                    "type": "string"
   323                  },
   324                  "pullPolicy": {
   325                    "type": "string",
   326                    "enum": [
   327                      "Always",
   328                      "IfNotPresent",
   329                      "Never"
   330                    ]
   331                  },
   332                  "tag": {
   333                    "type": "string"
   334                  }
   335                },
   336                "required": [
   337                  "name",
   338                  "pullPolicy"
   339                ]
   340              },
   341              "allocator": {
   342                "type": "object",
   343                "properties": {
   344                  "name": {
   345                    "type": "string"
   346                  },
   347                  "pullPolicy": {
   348                    "type": "string",
   349                    "enum": [
   350                      "Always",
   351                      "IfNotPresent",
   352                      "Never"
   353                    ]
   354                  },
   355                  "tag": {
   356                    "type": "string"
   357                  }
   358                },
   359                "required": [
   360                  "name",
   361                  "pullPolicy"
   362                ]
   363              }
   364            },
   365            "required": [
   366              "registry",
   367              "controller",
   368              "extensions",
   369              "ping",
   370              "allocator"
   371            ]
   372          },
   373          "sdkServer": {
   374            "type": "object",
   375            "properties": {
   376              "requestsRateLimit": {
   377                "type": "string"
   378              }
   379            }
   380          },
   381          "controller": {
   382            "type": "object",
   383            "properties": {
   384              "replicas": {
   385                "type": "integer"
   386              },
   387              "http": {
   388                "type": "object",
   389                "properties": {
   390                  "port": {
   391                    "type": "integer"
   392                  }
   393                },
   394                "required": [
   395                  "port"
   396                ]
   397              },
   398              "healthCheck": {
   399                "$ref": "#/definitions/healthCheck"
   400              },
   401              "logLevel": {
   402                "type": "string",
   403                "enum": [
   404                  "trace",
   405                  "debug",
   406                  "info",
   407                  "warning",
   408                  "error",
   409                  "panic",
   410                  "fatal"
   411                ]
   412              },
   413              "persistentLogs": {
   414                "type": "boolean"
   415              },
   416              "persistentLogsSizeLimitMB": {
   417                "type": "integer",
   418                "minimum": 0,
   419                "maximum": 10000
   420              },
   421              "resources": {
   422                "type": "object"
   423              },
   424              "nodeSelector": {
   425                "type": "object"
   426              },
   427              "affinity": {
   428                "type": "object"
   429              },
   430              "tolerations": {
   431                "$ref": "#/definitions/tolerations"
   432              },
   433              "labels": {
   434                "type": "object",
   435                "additionalProperties": {
   436                  "type": "string"
   437                }
   438              },
   439              "annotations": {
   440                "type": "object",
   441                "additionalProperties": {
   442                  "type": "string"
   443                }
   444              },
   445              "allocationBatchWaitTime": {
   446                "type": "string"
   447              },
   448              "customCertSecretPath": {
   449                "type": "array"
   450              },
   451              "maxCreationParallelism": {
   452                "type": "integer"
   453              },
   454              "maxGameServerCreationsPerBatch": {
   455                "type": "integer"
   456              },
   457              "maxDeletionParallelism": {
   458                "type": "integer"
   459              },
   460              "maxGameServerDeletionsPerBatch": {
   461                "type": "integer"
   462              },
   463              "maxPodPendingCount": {
   464                "type": "integer"
   465              },
   466              "numWorkers": {
   467                "type": "integer"
   468              },
   469              "topologySpreadConstraints": {
   470                "type": "array"
   471              },
   472              "apiServerQPS": {
   473                "type": "integer"
   474              },
   475              "apiServerQPSBurst": {
   476                "type": "integer"
   477              },
   478              "generateTLS": {
   479                "type": "boolean"
   480              },
   481              "tlsCert": {
   482                "type": "string"
   483              },
   484              "tlsKey": {
   485                "type": "string"
   486              },
   487              "updateStrategy": {
   488                "type": "object"
   489              },
   490              "pdb": {
   491                "type": "object",
   492                "properties": {
   493                  "minAvailable": {
   494                    "$ref": "#/definitions/stringOrInteger"
   495                  },
   496                  "maxUnavailable": {
   497                    "$ref": "#/definitions/stringOrInteger"
   498                  }
   499                },
   500                "allOf": [
   501                  {
   502                    "$ref": "#/definitions/minAvailableOrMaxUnavailable"
   503                  }
   504                ]
   505              }
   506            },
   507            "allOf": [
   508              {
   509                "if": {
   510                  "properties": {
   511                    "persistentLogs": {
   512                      "const": true
   513                    }
   514                  }
   515                },
   516                "then": {
   517                  "required": [
   518                    "persistentLogsSizeLimitMB"
   519                  ]
   520                }
   521              }
   522            ],
   523            "required": [
   524              "replicas",
   525              "pdb",
   526              "http",
   527              "healthCheck"
   528            ]
   529          },
   530          "ping": {
   531            "type": "object",
   532            "properties": {
   533              "install": {
   534                "type": "boolean"
   535              },
   536              "replicas": {
   537                "type": "integer"
   538              },
   539              "http": {
   540                "type": "object",
   541                "properties": {
   542                  "expose": {
   543                    "type": "boolean"
   544                  },
   545                  "response": {
   546                    "type": "string"
   547                  },
   548                  "port": {
   549                    "type": "integer"
   550                  },
   551                  "nodePort": {
   552                    "type": "integer"
   553                  },
   554                  "serviceType": {
   555                    "type": "string",
   556                    "enum": [
   557                      "ClusterIP",
   558                      "NodePort",
   559                      "LoadBalancer",
   560                      "ExternalName"
   561                    ]
   562                  },
   563                  "loadBalancerIP": {
   564                    "type": "string"
   565                  },
   566                  "loadBalancerSourceRanges": {
   567                    "type": "array",
   568                    "items": {}
   569                  },
   570                  "annotations": {
   571                    "type": "object"
   572                  }
   573                },
   574                "allOf": [
   575                  {
   576                    "if": {
   577                      "properties": {
   578                        "expose": {
   579                          "const": true
   580                        }
   581                      }
   582                    },
   583                    "then": {
   584                      "required": [
   585                        "port",
   586                        "serviceType"
   587                      ]
   588                    }
   589                  },
   590                  {
   591                    "if": {
   592                      "properties": {
   593                        "serviceType": {
   594                          "const": "NodePort"
   595                        }
   596                      }
   597                    },
   598                    "then": {
   599                      "required": [
   600                        "nodePort"
   601                      ]
   602                    }
   603                  },
   604                  {
   605                    "if": {
   606                      "properties": {
   607                        "serviceType": {
   608                          "const": "LoadBalancer"
   609                        }
   610                      }
   611                    },
   612                    "then": {
   613                      "required": [
   614                        "loadBalancerIP",
   615                        "loadBalancerSourceRanges"
   616                      ]
   617                    }
   618                  }
   619                ],
   620                "required": [
   621                  "expose"
   622                ]
   623              },
   624              "udp": {
   625                "type": "object",
   626                "properties": {
   627                  "expose": {
   628                    "type": "boolean"
   629                  },
   630                  "rateLimit": {
   631                    "type": "integer"
   632                  },
   633                  "port": {
   634                    "type": "integer"
   635                  },
   636                  "nodePort": {
   637                    "type": "integer"
   638                  },
   639                  "serviceType": {
   640                    "type": "string",
   641                    "enum": [
   642                      "ClusterIP",
   643                      "NodePort",
   644                      "LoadBalancer",
   645                      "ExternalName"
   646                    ]
   647                  },
   648                  "loadBalancerIP": {
   649                    "type": "string"
   650                  },
   651                  "loadBalancerSourceRanges": {
   652                    "type": "array",
   653                    "items": {}
   654                  },
   655                  "annotations": {
   656                    "type": "object"
   657                  }
   658                },
   659                "allOf": [
   660                  {
   661                    "if": {
   662                      "properties": {
   663                        "expose": {
   664                          "const": true
   665                        }
   666                      }
   667                    },
   668                    "then": {
   669                      "required": [
   670                        "port",
   671                        "serviceType"
   672                      ]
   673                    }
   674                  },
   675                  {
   676                    "if": {
   677                      "properties": {
   678                        "serviceType": {
   679                          "const": "NodePort"
   680                        }
   681                      }
   682                    },
   683                    "then": {
   684                      "required": [
   685                        "nodePort"
   686                      ]
   687                    }
   688                  },
   689                  {
   690                    "if": {
   691                      "properties": {
   692                        "serviceType": {
   693                          "const": "LoadBalancer"
   694                        }
   695                      }
   696                    },
   697                    "then": {
   698                      "required": [
   699                        "loadBalancerIP",
   700                        "loadBalancerSourceRanges"
   701                      ]
   702                    }
   703                  }
   704                ],
   705                "required": [
   706                  "expose"
   707                ]
   708              },
   709              "healthCheck": {
   710                "$ref": "#/definitions/healthCheck"
   711              },
   712              "resources": {
   713                "type": "object"
   714              },
   715              "nodeSelector": {
   716                "type": "object"
   717              },
   718              "tolerations": {
   719                "$ref": "#/definitions/tolerations"
   720              },
   721              "affinity": {
   722                "type": "object"
   723              },
   724              "annotations": {
   725                "type": "object"
   726              },
   727              "updateStrategy": {
   728                "type": "object"
   729              },
   730              "pdb": {
   731                "type": "object",
   732                "properties": {
   733                  "enabled": {
   734                    "type": "boolean"
   735                  },
   736                  "minAvailable": {
   737                    "$ref": "#/definitions/stringOrInteger"
   738                  },
   739                  "maxUnavailable": {
   740                    "$ref": "#/definitions/stringOrInteger"
   741                  }
   742                },
   743                "allOf": [
   744                  {
   745                    "$ref": "#/definitions/minAvailableOrMaxUnavailable"
   746                  }
   747                ],
   748                "required": [
   749                  "enabled"
   750                ]
   751              },
   752              "topologySpreadConstraints": {
   753                "type": "array"
   754              }
   755            },
   756            "allOf": [
   757              {
   758                "if": {
   759                  "properties": {
   760                    "install": {
   761                      "const": true
   762                    }
   763                  }
   764                },
   765                "then": {
   766                  "required": [
   767                    "replicas",
   768                    "http",
   769                    "udp",
   770                    "healthCheck",
   771                    "pdb"
   772                  ]
   773                }
   774              }
   775            ],
   776            "required": [
   777              "install"
   778            ]
   779          },
   780          "allocator": {
   781            "type": "object",
   782            "properties": {
   783              "install": {
   784                "type": "boolean"
   785              },
   786              "apiServerQPS": {
   787                "type": "integer"
   788              },
   789              "apiServerQPSBurst": {
   790                "type": "integer"
   791              },
   792              "remoteAllocationTimeout": {
   793                "type": "string"
   794              },
   795              "totalRemoteAllocationTimeout": {
   796                "type": "string"
   797              },
   798              "logLevel": {
   799                "type": "string",
   800                "enum": [
   801                  "trace",
   802                  "debug",
   803                  "info",
   804                  "warning",
   805                  "error",
   806                  "panic",
   807                  "fatal"
   808                ]
   809              },
   810              "replicas": {
   811                "type": "integer"
   812              },
   813              "service": {
   814                "type": "object",
   815                "properties": {
   816                  "name": {
   817                    "type": "string"
   818                  },
   819                  "serviceType": {
   820                    "type": "string",
   821                    "enum": [
   822                      "ClusterIP",
   823                      "NodePort",
   824                      "LoadBalancer",
   825                      "ExternalName"
   826                    ]
   827                  },
   828                  "externalTrafficPolicy": {
   829                    "type": "string"
   830                  },
   831                  "clusterIP": {
   832                    "type": "string"
   833                  },
   834                  "loadBalancerIP": {
   835                    "type": "string"
   836                  },
   837                  "loadBalancerSourceRanges": {
   838                    "type": "array",
   839                    "items": {}
   840                  },
   841                  "annotations": {
   842                    "type": "object"
   843                  },
   844                  "http": {
   845                    "type": "object",
   846                    "properties": {
   847                      "enabled": {
   848                        "type": "boolean"
   849                      },
   850                      "appProtocol": {
   851                        "type": "string"
   852                      },
   853                      "port": {
   854                        "type": "integer"
   855                      },
   856                      "portName": {
   857                        "type": "string"
   858                      },
   859                      "targetPort": {
   860                        "type": "integer"
   861                      },
   862                      "nodePort": {
   863                        "type": "integer"
   864                      },
   865                      "unallocatedStatusCode": {
   866                        "type": "integer"
   867                      }
   868                    },
   869                    "allOf": [
   870                      {
   871                        "if": {
   872                          "properties": {
   873                            "enabled": {
   874                              "const": "true"
   875                            }
   876                          }
   877                        },
   878                        "then": {
   879                          "required": [
   880                            "port",
   881                            "portName",
   882                            "targetPort"
   883                          ]
   884                        }
   885                      },
   886                      {
   887                        "if": {
   888                          "properties": {
   889                            "serviceType": {
   890                              "const": "NodePort"
   891                            }
   892                          }
   893                        },
   894                        "then": {
   895                          "required": [
   896                            "nodePort"
   897                          ]
   898                        }
   899                      }
   900                    ],
   901                    "required": [
   902                      "enabled"
   903                    ]
   904                  },
   905                  "grpc": {
   906                    "type": "object",
   907                    "properties": {
   908                      "enabled": {
   909                        "type": "boolean"
   910                      },
   911                      "appProtocol": {
   912                        "type": "string"
   913                      },
   914                      "port": {
   915                        "type": "integer"
   916                      },
   917                      "portName": {
   918                        "type": "string"
   919                      },
   920                      "targetPort": {
   921                        "type": "integer"
   922                      },
   923                      "nodePort": {
   924                        "type": "integer"
   925                      }
   926                    },
   927                    "allOf": [
   928                      {
   929                        "if": {
   930                          "properties": {
   931                            "enabled": {
   932                              "const": "true"
   933                            }
   934                          }
   935                        },
   936                        "then": {
   937                          "required": [
   938                            "port",
   939                            "portName",
   940                            "targetPort"
   941                          ]
   942                        }
   943                      },
   944                      {
   945                        "if": {
   946                          "properties": {
   947                            "serviceType": {
   948                              "const": "NodePort"
   949                            }
   950                          }
   951                        },
   952                        "then": {
   953                          "required": [
   954                            "nodePort"
   955                          ]
   956                        }
   957                      }
   958                    ],
   959                    "required": [
   960                      "enabled"
   961                    ]
   962                  }
   963                },
   964                "allOf": [
   965                  {
   966                    "if": {
   967                      "properties": {
   968                        "serviceType": {
   969                          "const": "LoadBalancer"
   970                        }
   971                      }
   972                    },
   973                    "then": {
   974                      "required": [
   975                        "externalTrafficPolicy"
   976                      ]
   977                    }
   978                  }
   979                ],
   980                "required": [
   981                  "name",
   982                  "serviceType",
   983                  "http",
   984                  "grpc"
   985                ]
   986              },
   987              "generateClientTLS": {
   988                "type": "boolean"
   989              },
   990              "generateTLS": {
   991                "type": "boolean"
   992              },
   993              "disableMTLS": {
   994                "type": "boolean"
   995              },
   996              "disableTLS": {
   997                "type": "boolean"
   998              },
   999              "disableSecretCreation": {
  1000                "type": "boolean"
  1001              },
  1002              "tlsCert": {
  1003                "type": "string"
  1004              },
  1005              "tlsKey": {
  1006                "type": "string"
  1007              },
  1008              "clientCAs": {
  1009                "type": "object"
  1010              },
  1011              "tolerations": {
  1012                "$ref": "#/definitions/tolerations"
  1013              },
  1014              "affinity": {
  1015                "type": "object"
  1016              },
  1017              "annotations": {
  1018                "type": "object"
  1019              },
  1020              "resources": {
  1021                "type": "object"
  1022              },
  1023              "labels": {
  1024                "type": "object",
  1025                "additionalProperties": {
  1026                  "type": "string"
  1027                }
  1028              },
  1029              "readiness": {
  1030                "type": "object",
  1031                "properties": {
  1032                  "initialDelaySeconds": {
  1033                    "type": "integer"
  1034                  },
  1035                  "periodSeconds": {
  1036                    "type": "integer"
  1037                  },
  1038                  "failureThreshold": {
  1039                    "type": "integer"
  1040                  }
  1041                },
  1042                "required": [
  1043                  "initialDelaySeconds",
  1044                  "periodSeconds",
  1045                  "failureThreshold"
  1046                ]
  1047              },
  1048              "nodeSelector": {
  1049                "type": "object"
  1050              },
  1051              "serviceMetrics": {
  1052                "type": "object",
  1053                "properties": {
  1054                  "name": {
  1055                    "type": "string"
  1056                  },
  1057                  "annotations": {
  1058                    "type": "object"
  1059                  },
  1060                  "http": {
  1061                    "type": "object",
  1062                    "properties": {
  1063                      "port": {
  1064                        "type": "integer"
  1065                      },
  1066                      "portName": {
  1067                        "type": "string"
  1068                      }
  1069                    },
  1070                    "required": [
  1071                      "port",
  1072                      "portName"
  1073                    ]
  1074                  }
  1075                },
  1076                "required": [
  1077                  "name",
  1078                  "http"
  1079                ]
  1080              },
  1081              "allocationBatchWaitTime": {
  1082                "type": "string"
  1083              },
  1084              "updateStrategy": {
  1085                "type": "object"
  1086              },
  1087              "pdb": {
  1088                "type": "object",
  1089                "properties": {
  1090                  "enabled": {
  1091                    "type": "boolean"
  1092                  },
  1093                  "minAvailable": {
  1094                    "$ref": "#/definitions/stringOrInteger"
  1095                  },
  1096                  "maxUnavailable": {
  1097                    "$ref": "#/definitions/stringOrInteger"
  1098                  }
  1099                },
  1100                "required": [
  1101                  "enabled"
  1102                ],
  1103                "allOf": [
  1104                  {
  1105                    "$ref": "#/definitions/minAvailableOrMaxUnavailable"
  1106                  }
  1107                ]
  1108              },
  1109              "topologySpreadConstraints": {
  1110                "type": "array"
  1111              },
  1112              "healthCheck": {
  1113                "$ref": "#/definitions/healthCheck"
  1114              }
  1115            },
  1116            "allOf": [
  1117              {
  1118                "if": {
  1119                  "properties": {
  1120                    "install": {
  1121                      "const": true
  1122                    }
  1123                  }
  1124                },
  1125                "then": {
  1126                  "required": [
  1127                    "replicas",
  1128                    "service",
  1129                    "readiness",
  1130                    "serviceMetrics",
  1131                    "pdb",
  1132                    "healthCheck"
  1133                  ]
  1134                }
  1135              }
  1136            ],
  1137            "required": [
  1138              "install"
  1139            ]
  1140          },
  1141          "extensions": {
  1142            "type": "object",
  1143            "properties": {
  1144              "hostNetwork": {
  1145                "type": "boolean"
  1146              },
  1147              "http": {
  1148                "type": "object",
  1149                "properties": {
  1150                  "port": {
  1151                    "type": "integer"
  1152                  }
  1153                },
  1154                "required": [
  1155                  "port"
  1156                ]
  1157              },
  1158              "webhooks": {
  1159                "type": "object",
  1160                "properties": {
  1161                  "port": {
  1162                    "type": "integer"
  1163                  }
  1164                },
  1165                "required": [
  1166                  "port"
  1167                ]
  1168              },
  1169              "healthCheck": {
  1170                "$ref": "#/definitions/healthCheck"
  1171              },
  1172              "resources": {
  1173                "type": "object"
  1174              },
  1175              "generateTLS": {
  1176                "type": "boolean"
  1177              },
  1178              "nodeSelector": {
  1179                "type": "object"
  1180              },
  1181              "tolerations": {
  1182                "$ref": "#/definitions/tolerations"
  1183              },
  1184              "affinity": {
  1185                "type": "object"
  1186              },
  1187              "annotations": {
  1188                "type": "object"
  1189              },
  1190              "labels": {
  1191                "type": "object"
  1192              },
  1193              "numWorkers": {
  1194                "type": "integer"
  1195              },
  1196              "apiServerQPS": {
  1197                "type": "integer"
  1198              },
  1199              "apiServerQPSBurst": {
  1200                "type": "integer"
  1201              },
  1202              "logLevel": {
  1203                "type": "string",
  1204                "enum": [
  1205                  "trace",
  1206                  "debug",
  1207                  "info",
  1208                  "warning",
  1209                  "error",
  1210                  "panic",
  1211                  "fatal"
  1212                ]
  1213              },
  1214              "persistentLogs": {
  1215                "type": "boolean"
  1216              },
  1217              "persistentLogsSizeLimitMB": {
  1218                "type": "integer",
  1219                "minimum": 0,
  1220                "maximum": 10000
  1221              },
  1222              "disableSecret": {
  1223                "type": "boolean"
  1224              },
  1225              "customCertSecretPath": {
  1226                "type": "array"
  1227              },
  1228              "allocationApiService": {
  1229                "type": "object",
  1230                "properties": {
  1231                  "annotations": {
  1232                    "type": "object"
  1233                  },
  1234                  "disableCaBundle": {
  1235                    "type": "boolean"
  1236                  }
  1237                }
  1238              },
  1239              "validatingWebhook": {
  1240                "type": "object",
  1241                "properties": {
  1242                  "annotations": {
  1243                    "type": "object"
  1244                  },
  1245                  "disableCaBundle": {
  1246                    "type": "boolean"
  1247                  }
  1248                }
  1249              },
  1250              "mutatingWebhook": {
  1251                "type": "object",
  1252                "properties": {
  1253                  "annotations": {
  1254                    "type": "object"
  1255                  },
  1256                  "disableCaBundle": {
  1257                    "type": "boolean"
  1258                  }
  1259                }
  1260              },
  1261              "allocationBatchWaitTime": {
  1262                "type": "string"
  1263              },
  1264              "updateStrategy": {
  1265                "type": "object"
  1266              },
  1267              "pdb": {
  1268                "type": "object",
  1269                "properties": {
  1270                  "minAvailable": {
  1271                    "$ref": "#/definitions/stringOrInteger"
  1272                  },
  1273                  "maxUnavailable": {
  1274                    "$ref": "#/definitions/stringOrInteger"
  1275                  }
  1276                },
  1277                "allOf": [
  1278                  {
  1279                    "$ref": "#/definitions/minAvailableOrMaxUnavailable"
  1280                  }
  1281                ]
  1282              },
  1283              "replicas": {
  1284                "type": "integer"
  1285              },
  1286              "readiness": {
  1287                "type": "object",
  1288                "properties": {
  1289                  "initialDelaySeconds": {
  1290                    "type": "integer"
  1291                  },
  1292                  "periodSeconds": {
  1293                    "type": "integer"
  1294                  },
  1295                  "failureThreshold": {
  1296                    "type": "integer"
  1297                  }
  1298                },
  1299                "required": [
  1300                  "initialDelaySeconds",
  1301                  "periodSeconds",
  1302                  "failureThreshold"
  1303                ]
  1304              },
  1305              "topologySpreadConstraints": {
  1306                "type": "array"
  1307              }
  1308            },
  1309            "allOf": [
  1310              {
  1311                "if": {
  1312                  "properties": {
  1313                    "persistentLogs": {
  1314                      "const": true
  1315                    }
  1316                  }
  1317                },
  1318                "then": {
  1319                  "required": [
  1320                    "persistentLogsSizeLimitMB"
  1321                  ]
  1322                }
  1323              }
  1324            ],
  1325            "required": [
  1326              "http",
  1327              "webhooks",
  1328              "healthCheck",
  1329              "pdb",
  1330              "replicas",
  1331              "readiness"
  1332            ]
  1333          }
  1334        },
  1335        "required": [
  1336          "featureGates",
  1337          "crds",
  1338          "metrics",
  1339          "serviceaccount",
  1340          "image",
  1341          "controller",
  1342          "ping",
  1343          "allocator",
  1344          "extensions"
  1345        ],
  1346        "allOf": [
  1347          {
  1348            "if": {
  1349              "properties": {
  1350                "createPriorityClass": {
  1351                  "const": true
  1352                }
  1353              }
  1354            },
  1355            "then": {
  1356              "required": [
  1357                "priorityClassName"
  1358              ],
  1359              "properties": {
  1360                "priorityClassName": {
  1361                  "$ref": "#/definitions/nonEmptyString"
  1362                }
  1363              }
  1364            }
  1365          },
  1366          {
  1367            "if": {
  1368              "properties": {
  1369                "priorityClassName": {
  1370                  "$ref": "#/definitions/nonEmptyString"
  1371                }
  1372              }
  1373            },
  1374            "then": {
  1375              "required": [
  1376                "createPriorityClass"
  1377              ],
  1378              "properties": {
  1379                "createPriorityClass": {
  1380                  "const": true
  1381                }
  1382              }
  1383            }
  1384          },
  1385          {
  1386            "if": {
  1387              "properties": {
  1388                "controller": {
  1389                  "properties": {
  1390                    "affinity": {
  1391                      "$ref": "#/definitions/nonEmptyObject"
  1392                    }
  1393                  },
  1394                  "required": [
  1395                    "affinity"
  1396                  ]
  1397                }
  1398              }
  1399            },
  1400            "then": {
  1401              "properties": {
  1402                "requireDedicatedNodes": {
  1403                  "const": false
  1404                }
  1405              }
  1406            }
  1407          },
  1408          {
  1409            "if": {
  1410              "properties": {
  1411                "ping": {
  1412                  "properties": {
  1413                    "affinity": {
  1414                      "$ref": "#/definitions/nonEmptyObject"
  1415                    }
  1416                  },
  1417                  "required": [
  1418                    "affinity"
  1419                  ]
  1420                }
  1421              }
  1422            },
  1423            "then": {
  1424              "properties": {
  1425                "requireDedicatedNodes": {
  1426                  "const": false
  1427                }
  1428              }
  1429            }
  1430          },
  1431          {
  1432            "if": {
  1433              "properties": {
  1434                "allocator": {
  1435                  "properties": {
  1436                    "affinity": {
  1437                      "$ref": "#/definitions/nonEmptyObject"
  1438                    }
  1439                  },
  1440                  "required": [
  1441                    "affinity"
  1442                  ]
  1443                }
  1444              }
  1445            },
  1446            "then": {
  1447              "properties": {
  1448                "requireDedicatedNodes": {
  1449                  "const": false
  1450                }
  1451              }
  1452            }
  1453          },
  1454          {
  1455            "if": {
  1456              "properties": {
  1457                "extensions": {
  1458                  "properties": {
  1459                    "affinity": {
  1460                      "$ref": "#/definitions/nonEmptyObject"
  1461                    }
  1462                  },
  1463                  "required": [
  1464                    "affinity"
  1465                  ]
  1466                }
  1467              }
  1468            },
  1469            "then": {
  1470              "properties": {
  1471                "requireDedicatedNodes": {
  1472                  "const": false
  1473                }
  1474              }
  1475            }
  1476          },
  1477          {
  1478            "if": {
  1479              "properties": {
  1480                "requireDedicatedNodes": {
  1481                  "const": true
  1482                }
  1483              }
  1484            },
  1485            "then": {
  1486              "properties": {
  1487                "controller": {
  1488                  "properties": {
  1489                    "affinity": {
  1490                      "anyOf": [
  1491                        {
  1492                          "$ref": "#/definitions/emptyObject"
  1493                        },
  1494                        {
  1495                          "type": "null"
  1496                        }
  1497                      ]
  1498                    }
  1499                  }
  1500                },
  1501                "ping": {
  1502                  "properties": {
  1503                    "affinity": {
  1504                      "anyOf": [
  1505                        {
  1506                          "$ref": "#/definitions/emptyObject"
  1507                        },
  1508                        {
  1509                          "type": "null"
  1510                        }
  1511                      ]
  1512                    }
  1513                  }
  1514                },
  1515                "allocator": {
  1516                  "properties": {
  1517                    "affinity": {
  1518                      "anyOf": [
  1519                        {
  1520                          "$ref": "#/definitions/emptyObject"
  1521                        },
  1522                        {
  1523                          "type": "null"
  1524                        }
  1525                      ]
  1526                    }
  1527                  }
  1528                },
  1529                "extensions": {
  1530                  "properties": {
  1531                    "affinity": {
  1532                      "anyOf": [
  1533                        {
  1534                          "$ref": "#/definitions/emptyObject"
  1535                        },
  1536                        {
  1537                          "type": "null"
  1538                        }
  1539                      ]
  1540                    }
  1541                  }
  1542                }
  1543              }
  1544            }
  1545          }
  1546        ]
  1547      },
  1548      "gameservers": {
  1549        "type": "object",
  1550        "properties": {
  1551          "namespaces": {
  1552            "type": "array",
  1553            "items": {
  1554              "type": "string"
  1555            }
  1556          },
  1557          "minPort": {
  1558            "type": "integer"
  1559          },
  1560          "maxPort": {
  1561            "type": "integer"
  1562          },
  1563          "additionalPortRanges": {
  1564            "type": "object"
  1565          },
  1566          "podPreserveUnknownFields": {
  1567            "type": "boolean"
  1568          },
  1569          "lists": {
  1570            "type": "object",
  1571            "properties": {
  1572              "maxItems": {
  1573                "type": "integer"
  1574              }
  1575            },
  1576            "required": [
  1577              "maxItems"
  1578            ]
  1579          }
  1580        },
  1581        "required": [
  1582          "namespaces",
  1583          "minPort",
  1584          "maxPort",
  1585          "podPreserveUnknownFields",
  1586          "lists"
  1587        ]
  1588      },
  1589      "helm": {
  1590        "type": "object",
  1591        "properties": {
  1592          "installTests": {
  1593            "type": "boolean"
  1594          }
  1595        }
  1596      }
  1597    },
  1598    "required": [
  1599      "agones",
  1600      "gameservers",
  1601      "helm"
  1602    ],
  1603    "definitions": {
  1604      "emptyObject": {
  1605        "type": "object",
  1606        "maxProperties": 0
  1607      },
  1608      "nonEmptyObject": {
  1609        "type": "object",
  1610        "minProperties": 1
  1611      },
  1612      "nonEmptyString": {
  1613        "type": "string",
  1614        "minLength": 1
  1615      },
  1616      "nonNegativeInteger": {
  1617        "type": "integer",
  1618        "minimum": 0
  1619      },
  1620      "stringOrInteger": {
  1621        "anyOf": [
  1622          {
  1623            "type": "integer"
  1624          },
  1625          {
  1626            "type": "string"
  1627          }
  1628        ]
  1629      },
  1630      "stringOrZero": {
  1631        "anyOf": [
  1632          {
  1633            "type": "string"
  1634          },
  1635          {
  1636            "type": "integer",
  1637            "enum": [
  1638              0
  1639            ]
  1640          }
  1641        ]
  1642      },
  1643      "minAvailableOrMaxUnavailable": {
  1644        "oneOf": [
  1645          {
  1646            "required": [
  1647              "minAvailable"
  1648            ],
  1649            "not": {
  1650              "required": [
  1651                "maxUnavailable"
  1652              ]
  1653            }
  1654          },
  1655          {
  1656            "required": [
  1657              "maxUnavailable"
  1658            ],
  1659            "not": {
  1660              "required": [
  1661                "minAvailable"
  1662              ]
  1663            }
  1664          }
  1665        ]
  1666      },
  1667      "healthCheck": {
  1668        "type": "object",
  1669        "properties": {
  1670          "initialDelaySeconds": {
  1671            "type": "integer"
  1672          },
  1673          "periodSeconds": {
  1674            "type": "integer"
  1675          },
  1676          "failureThreshold": {
  1677            "type": "integer"
  1678          },
  1679          "timeoutSeconds": {
  1680            "type": "integer"
  1681          }
  1682        },
  1683        "required": [
  1684          "initialDelaySeconds",
  1685          "periodSeconds",
  1686          "failureThreshold",
  1687          "timeoutSeconds"
  1688        ]
  1689      },
  1690      "tolerations": {
  1691        "type": "array",
  1692        "items": {
  1693          "type": "object",
  1694          "properties": {
  1695            "key": {
  1696              "type": "string"
  1697            },
  1698            "operator": {
  1699              "type": "string"
  1700            },
  1701            "value": {
  1702              "type": "string"
  1703            },
  1704            "effect": {
  1705              "type": "string"
  1706            }
  1707          }
  1708        }
  1709      }
  1710    }
  1711  }