github.com/argoproj/argo-cd@v1.8.7/manifests/ha/install.yaml (about)

     1  # This is an auto-generated file. DO NOT EDIT
     2  apiVersion: apiextensions.k8s.io/v1beta1
     3  kind: CustomResourceDefinition
     4  metadata:
     5    labels:
     6      app.kubernetes.io/name: applications.argoproj.io
     7      app.kubernetes.io/part-of: argocd
     8    name: applications.argoproj.io
     9  spec:
    10    additionalPrinterColumns:
    11    - JSONPath: .status.sync.status
    12      name: Sync Status
    13      type: string
    14    - JSONPath: .status.health.status
    15      name: Health Status
    16      type: string
    17    - JSONPath: .status.sync.revision
    18      name: Revision
    19      priority: 10
    20      type: string
    21    group: argoproj.io
    22    names:
    23      kind: Application
    24      listKind: ApplicationList
    25      plural: applications
    26      shortNames:
    27      - app
    28      - apps
    29      singular: application
    30    scope: Namespaced
    31    subresources: {}
    32    validation:
    33      openAPIV3Schema:
    34        description: Application is a definition of Application resource.
    35        properties:
    36          apiVersion:
    37            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    38            type: string
    39          kind:
    40            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    41            type: string
    42          metadata:
    43            type: object
    44          operation:
    45            description: Operation contains requested operation parameters.
    46            properties:
    47              info:
    48                items:
    49                  properties:
    50                    name:
    51                      type: string
    52                    value:
    53                      type: string
    54                  required:
    55                  - name
    56                  - value
    57                  type: object
    58                type: array
    59              initiatedBy:
    60                description: OperationInitiator holds information about the operation initiator
    61                properties:
    62                  automated:
    63                    description: Automated is set to true if operation was initiated automatically by the application controller.
    64                    type: boolean
    65                  username:
    66                    description: Name of a user who started operation.
    67                    type: string
    68                type: object
    69              retry:
    70                description: Retry controls failed sync retry behavior
    71                properties:
    72                  backoff:
    73                    description: Backoff is a backoff strategy
    74                    properties:
    75                      duration:
    76                        description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
    77                        type: string
    78                      factor:
    79                        description: Factor is a factor to multiply the base duration after each failed retry
    80                        format: int64
    81                        type: integer
    82                      maxDuration:
    83                        description: MaxDuration is the maximum amount of time allowed for the backoff strategy
    84                        type: string
    85                    type: object
    86                  limit:
    87                    description: Limit is the maximum number of attempts when retrying a container
    88                    format: int64
    89                    type: integer
    90                type: object
    91              sync:
    92                description: SyncOperation contains sync operation details.
    93                properties:
    94                  dryRun:
    95                    description: DryRun will perform a `kubectl apply --dry-run` without actually performing the sync
    96                    type: boolean
    97                  manifests:
    98                    description: Manifests is an optional field that overrides sync source with a local directory for development
    99                    items:
   100                      type: string
   101                    type: array
   102                  prune:
   103                    description: Prune deletes resources that are no longer tracked in git
   104                    type: boolean
   105                  resources:
   106                    description: Resources describes which resources to sync
   107                    items:
   108                      description: SyncOperationResource contains resources to sync.
   109                      properties:
   110                        group:
   111                          type: string
   112                        kind:
   113                          type: string
   114                        name:
   115                          type: string
   116                        namespace:
   117                          type: string
   118                      required:
   119                      - kind
   120                      - name
   121                      type: object
   122                    type: array
   123                  revision:
   124                    description: Revision is the revision in which to sync the application to. If omitted, will use the revision specified in app spec.
   125                    type: string
   126                  source:
   127                    description: Source overrides the source definition set in the application. This is typically set in a Rollback operation and nil during a Sync operation
   128                    properties:
   129                      chart:
   130                        description: Chart is a Helm chart name
   131                        type: string
   132                      directory:
   133                        description: Directory holds path/directory specific options
   134                        properties:
   135                          exclude:
   136                            type: string
   137                          jsonnet:
   138                            description: ApplicationSourceJsonnet holds jsonnet specific options
   139                            properties:
   140                              extVars:
   141                                description: ExtVars is a list of Jsonnet External Variables
   142                                items:
   143                                  description: JsonnetVar is a jsonnet variable
   144                                  properties:
   145                                    code:
   146                                      type: boolean
   147                                    name:
   148                                      type: string
   149                                    value:
   150                                      type: string
   151                                  required:
   152                                  - name
   153                                  - value
   154                                  type: object
   155                                type: array
   156                              libs:
   157                                description: Additional library search dirs
   158                                items:
   159                                  type: string
   160                                type: array
   161                              tlas:
   162                                description: TLAS is a list of Jsonnet Top-level Arguments
   163                                items:
   164                                  description: JsonnetVar is a jsonnet variable
   165                                  properties:
   166                                    code:
   167                                      type: boolean
   168                                    name:
   169                                      type: string
   170                                    value:
   171                                      type: string
   172                                  required:
   173                                  - name
   174                                  - value
   175                                  type: object
   176                                type: array
   177                            type: object
   178                          recurse:
   179                            type: boolean
   180                        type: object
   181                      helm:
   182                        description: Helm holds helm specific options
   183                        properties:
   184                          fileParameters:
   185                            description: FileParameters are file parameters to the helm template
   186                            items:
   187                              description: HelmFileParameter is a file parameter to a helm template
   188                              properties:
   189                                name:
   190                                  description: Name is the name of the helm parameter
   191                                  type: string
   192                                path:
   193                                  description: Path is the path value for the helm parameter
   194                                  type: string
   195                              type: object
   196                            type: array
   197                          parameters:
   198                            description: Parameters are parameters to the helm template
   199                            items:
   200                              description: HelmParameter is a parameter to a helm template
   201                              properties:
   202                                forceString:
   203                                  description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings
   204                                  type: boolean
   205                                name:
   206                                  description: Name is the name of the helm parameter
   207                                  type: string
   208                                value:
   209                                  description: Value is the value for the helm parameter
   210                                  type: string
   211                              type: object
   212                            type: array
   213                          releaseName:
   214                            description: The Helm release name. If omitted it will use the application name
   215                            type: string
   216                          valueFiles:
   217                            description: ValuesFiles is a list of Helm value files to use when generating a template
   218                            items:
   219                              type: string
   220                            type: array
   221                          values:
   222                            description: Values is Helm values, typically defined as a block
   223                            type: string
   224                          version:
   225                            description: Version is the Helm version to use for templating with
   226                            type: string
   227                        type: object
   228                      ksonnet:
   229                        description: Ksonnet holds ksonnet specific options
   230                        properties:
   231                          environment:
   232                            description: Environment is a ksonnet application environment name
   233                            type: string
   234                          parameters:
   235                            description: Parameters are a list of ksonnet component parameter override values
   236                            items:
   237                              description: KsonnetParameter is a ksonnet component parameter
   238                              properties:
   239                                component:
   240                                  type: string
   241                                name:
   242                                  type: string
   243                                value:
   244                                  type: string
   245                              required:
   246                              - name
   247                              - value
   248                              type: object
   249                            type: array
   250                        type: object
   251                      kustomize:
   252                        description: Kustomize holds kustomize specific options
   253                        properties:
   254                          commonAnnotations:
   255                            additionalProperties:
   256                              type: string
   257                            description: CommonAnnotations adds additional kustomize commonAnnotations
   258                            type: object
   259                          commonLabels:
   260                            additionalProperties:
   261                              type: string
   262                            description: CommonLabels adds additional kustomize commonLabels
   263                            type: object
   264                          images:
   265                            description: Images are kustomize image overrides
   266                            items:
   267                              type: string
   268                            type: array
   269                          namePrefix:
   270                            description: NamePrefix is a prefix appended to resources for kustomize apps
   271                            type: string
   272                          nameSuffix:
   273                            description: NameSuffix is a suffix appended to resources for kustomize apps
   274                            type: string
   275                          version:
   276                            description: Version contains optional Kustomize version
   277                            type: string
   278                        type: object
   279                      path:
   280                        description: Path is a directory path within the Git repository
   281                        type: string
   282                      plugin:
   283                        description: ConfigManagementPlugin holds config management plugin specific options
   284                        properties:
   285                          env:
   286                            items:
   287                              properties:
   288                                name:
   289                                  description: the name, usually uppercase
   290                                  type: string
   291                                value:
   292                                  description: the value
   293                                  type: string
   294                              required:
   295                              - name
   296                              - value
   297                              type: object
   298                            type: array
   299                          name:
   300                            type: string
   301                        type: object
   302                      repoURL:
   303                        description: RepoURL is the repository URL of the application manifests
   304                        type: string
   305                      targetRevision:
   306                        description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD
   307                        type: string
   308                    required:
   309                    - repoURL
   310                    type: object
   311                  syncOptions:
   312                    description: SyncOptions provide per-sync sync-options, e.g. Validate=false
   313                    items:
   314                      type: string
   315                    type: array
   316                  syncStrategy:
   317                    description: SyncStrategy describes how to perform the sync
   318                    properties:
   319                      apply:
   320                        description: Apply will perform a `kubectl apply` to perform the sync.
   321                        properties:
   322                          force:
   323                            description: Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.
   324                            type: boolean
   325                        type: object
   326                      hook:
   327                        description: Hook will submit any referenced resources to perform the sync. This is the default strategy
   328                        properties:
   329                          force:
   330                            description: Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.
   331                            type: boolean
   332                        type: object
   333                    type: object
   334                type: object
   335            type: object
   336          spec:
   337            description: ApplicationSpec represents desired application state. Contains link to repository with application definition and additional parameters link definition revision.
   338            properties:
   339              destination:
   340                description: Destination overrides the kubernetes server and namespace defined in the environment ksonnet app.yaml
   341                properties:
   342                  name:
   343                    description: Name of the destination cluster which can be used instead of server (url) field
   344                    type: string
   345                  namespace:
   346                    description: Namespace overrides the environment namespace value in the ksonnet app.yaml
   347                    type: string
   348                  server:
   349                    description: Server overrides the environment server value in the ksonnet app.yaml
   350                    type: string
   351                type: object
   352              ignoreDifferences:
   353                description: IgnoreDifferences controls resources fields which should be ignored during comparison
   354                items:
   355                  description: ResourceIgnoreDifferences contains resource filter and list of json paths which should be ignored during comparison with live state.
   356                  properties:
   357                    group:
   358                      type: string
   359                    jsonPointers:
   360                      items:
   361                        type: string
   362                      type: array
   363                    kind:
   364                      type: string
   365                    name:
   366                      type: string
   367                    namespace:
   368                      type: string
   369                  required:
   370                  - jsonPointers
   371                  - kind
   372                  type: object
   373                type: array
   374              info:
   375                description: Infos contains a list of useful information (URLs, email addresses, and plain text) that relates to the application
   376                items:
   377                  properties:
   378                    name:
   379                      type: string
   380                    value:
   381                      type: string
   382                  required:
   383                  - name
   384                  - value
   385                  type: object
   386                type: array
   387              project:
   388                description: Project is a application project name. Empty name means that application belongs to 'default' project.
   389                type: string
   390              revisionHistoryLimit:
   391                description: This limits this number of items kept in the apps revision history. This should only be changed in exceptional circumstances. Setting to zero will store no history. This will reduce storage used. Increasing will increase the space used to store the history, so we do not recommend increasing it. Default is 10.
   392                format: int64
   393                type: integer
   394              source:
   395                description: Source is a reference to the location ksonnet application definition
   396                properties:
   397                  chart:
   398                    description: Chart is a Helm chart name
   399                    type: string
   400                  directory:
   401                    description: Directory holds path/directory specific options
   402                    properties:
   403                      exclude:
   404                        type: string
   405                      jsonnet:
   406                        description: ApplicationSourceJsonnet holds jsonnet specific options
   407                        properties:
   408                          extVars:
   409                            description: ExtVars is a list of Jsonnet External Variables
   410                            items:
   411                              description: JsonnetVar is a jsonnet variable
   412                              properties:
   413                                code:
   414                                  type: boolean
   415                                name:
   416                                  type: string
   417                                value:
   418                                  type: string
   419                              required:
   420                              - name
   421                              - value
   422                              type: object
   423                            type: array
   424                          libs:
   425                            description: Additional library search dirs
   426                            items:
   427                              type: string
   428                            type: array
   429                          tlas:
   430                            description: TLAS is a list of Jsonnet Top-level Arguments
   431                            items:
   432                              description: JsonnetVar is a jsonnet variable
   433                              properties:
   434                                code:
   435                                  type: boolean
   436                                name:
   437                                  type: string
   438                                value:
   439                                  type: string
   440                              required:
   441                              - name
   442                              - value
   443                              type: object
   444                            type: array
   445                        type: object
   446                      recurse:
   447                        type: boolean
   448                    type: object
   449                  helm:
   450                    description: Helm holds helm specific options
   451                    properties:
   452                      fileParameters:
   453                        description: FileParameters are file parameters to the helm template
   454                        items:
   455                          description: HelmFileParameter is a file parameter to a helm template
   456                          properties:
   457                            name:
   458                              description: Name is the name of the helm parameter
   459                              type: string
   460                            path:
   461                              description: Path is the path value for the helm parameter
   462                              type: string
   463                          type: object
   464                        type: array
   465                      parameters:
   466                        description: Parameters are parameters to the helm template
   467                        items:
   468                          description: HelmParameter is a parameter to a helm template
   469                          properties:
   470                            forceString:
   471                              description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings
   472                              type: boolean
   473                            name:
   474                              description: Name is the name of the helm parameter
   475                              type: string
   476                            value:
   477                              description: Value is the value for the helm parameter
   478                              type: string
   479                          type: object
   480                        type: array
   481                      releaseName:
   482                        description: The Helm release name. If omitted it will use the application name
   483                        type: string
   484                      valueFiles:
   485                        description: ValuesFiles is a list of Helm value files to use when generating a template
   486                        items:
   487                          type: string
   488                        type: array
   489                      values:
   490                        description: Values is Helm values, typically defined as a block
   491                        type: string
   492                      version:
   493                        description: Version is the Helm version to use for templating with
   494                        type: string
   495                    type: object
   496                  ksonnet:
   497                    description: Ksonnet holds ksonnet specific options
   498                    properties:
   499                      environment:
   500                        description: Environment is a ksonnet application environment name
   501                        type: string
   502                      parameters:
   503                        description: Parameters are a list of ksonnet component parameter override values
   504                        items:
   505                          description: KsonnetParameter is a ksonnet component parameter
   506                          properties:
   507                            component:
   508                              type: string
   509                            name:
   510                              type: string
   511                            value:
   512                              type: string
   513                          required:
   514                          - name
   515                          - value
   516                          type: object
   517                        type: array
   518                    type: object
   519                  kustomize:
   520                    description: Kustomize holds kustomize specific options
   521                    properties:
   522                      commonAnnotations:
   523                        additionalProperties:
   524                          type: string
   525                        description: CommonAnnotations adds additional kustomize commonAnnotations
   526                        type: object
   527                      commonLabels:
   528                        additionalProperties:
   529                          type: string
   530                        description: CommonLabels adds additional kustomize commonLabels
   531                        type: object
   532                      images:
   533                        description: Images are kustomize image overrides
   534                        items:
   535                          type: string
   536                        type: array
   537                      namePrefix:
   538                        description: NamePrefix is a prefix appended to resources for kustomize apps
   539                        type: string
   540                      nameSuffix:
   541                        description: NameSuffix is a suffix appended to resources for kustomize apps
   542                        type: string
   543                      version:
   544                        description: Version contains optional Kustomize version
   545                        type: string
   546                    type: object
   547                  path:
   548                    description: Path is a directory path within the Git repository
   549                    type: string
   550                  plugin:
   551                    description: ConfigManagementPlugin holds config management plugin specific options
   552                    properties:
   553                      env:
   554                        items:
   555                          properties:
   556                            name:
   557                              description: the name, usually uppercase
   558                              type: string
   559                            value:
   560                              description: the value
   561                              type: string
   562                          required:
   563                          - name
   564                          - value
   565                          type: object
   566                        type: array
   567                      name:
   568                        type: string
   569                    type: object
   570                  repoURL:
   571                    description: RepoURL is the repository URL of the application manifests
   572                    type: string
   573                  targetRevision:
   574                    description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD
   575                    type: string
   576                required:
   577                - repoURL
   578                type: object
   579              syncPolicy:
   580                description: SyncPolicy controls when a sync will be performed
   581                properties:
   582                  automated:
   583                    description: Automated will keep an application synced to the target revision
   584                    properties:
   585                      allowEmpty:
   586                        description: 'AllowEmpty allows apps have zero live resources (default: false)'
   587                        type: boolean
   588                      prune:
   589                        description: 'Prune will prune resources automatically as part of automated sync (default: false)'
   590                        type: boolean
   591                      selfHeal:
   592                        description: 'SelfHeal enables auto-syncing if  (default: false)'
   593                        type: boolean
   594                    type: object
   595                  retry:
   596                    description: Retry controls failed sync retry behavior
   597                    properties:
   598                      backoff:
   599                        description: Backoff is a backoff strategy
   600                        properties:
   601                          duration:
   602                            description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
   603                            type: string
   604                          factor:
   605                            description: Factor is a factor to multiply the base duration after each failed retry
   606                            format: int64
   607                            type: integer
   608                          maxDuration:
   609                            description: MaxDuration is the maximum amount of time allowed for the backoff strategy
   610                            type: string
   611                        type: object
   612                      limit:
   613                        description: Limit is the maximum number of attempts when retrying a container
   614                        format: int64
   615                        type: integer
   616                    type: object
   617                  syncOptions:
   618                    description: Options allow you to specify whole app sync-options
   619                    items:
   620                      type: string
   621                    type: array
   622                type: object
   623            required:
   624            - destination
   625            - project
   626            - source
   627            type: object
   628          status:
   629            description: ApplicationStatus contains information about application sync, health status
   630            properties:
   631              conditions:
   632                items:
   633                  description: ApplicationCondition contains details about current application condition
   634                  properties:
   635                    lastTransitionTime:
   636                      description: LastTransitionTime is the time the condition was first observed.
   637                      format: date-time
   638                      type: string
   639                    message:
   640                      description: Message contains human-readable message indicating details about condition
   641                      type: string
   642                    type:
   643                      description: Type is an application condition type
   644                      type: string
   645                  required:
   646                  - message
   647                  - type
   648                  type: object
   649                type: array
   650              health:
   651                properties:
   652                  message:
   653                    type: string
   654                  status:
   655                    description: Represents resource health status
   656                    type: string
   657                type: object
   658              history:
   659                description: RevisionHistories is a array of history, oldest first and newest last
   660                items:
   661                  description: RevisionHistory contains information relevant to an application deployment
   662                  properties:
   663                    deployStartedAt:
   664                      description: DeployStartedAt holds the time the deployment started
   665                      format: date-time
   666                      type: string
   667                    deployedAt:
   668                      description: DeployedAt holds the time the deployment completed
   669                      format: date-time
   670                      type: string
   671                    id:
   672                      description: ID is an auto incrementing identifier of the RevisionHistory
   673                      format: int64
   674                      type: integer
   675                    revision:
   676                      description: Revision holds the revision of the sync
   677                      type: string
   678                    source:
   679                      description: ApplicationSource contains information about github repository, path within repository and target application environment.
   680                      properties:
   681                        chart:
   682                          description: Chart is a Helm chart name
   683                          type: string
   684                        directory:
   685                          description: Directory holds path/directory specific options
   686                          properties:
   687                            exclude:
   688                              type: string
   689                            jsonnet:
   690                              description: ApplicationSourceJsonnet holds jsonnet specific options
   691                              properties:
   692                                extVars:
   693                                  description: ExtVars is a list of Jsonnet External Variables
   694                                  items:
   695                                    description: JsonnetVar is a jsonnet variable
   696                                    properties:
   697                                      code:
   698                                        type: boolean
   699                                      name:
   700                                        type: string
   701                                      value:
   702                                        type: string
   703                                    required:
   704                                    - name
   705                                    - value
   706                                    type: object
   707                                  type: array
   708                                libs:
   709                                  description: Additional library search dirs
   710                                  items:
   711                                    type: string
   712                                  type: array
   713                                tlas:
   714                                  description: TLAS is a list of Jsonnet Top-level Arguments
   715                                  items:
   716                                    description: JsonnetVar is a jsonnet variable
   717                                    properties:
   718                                      code:
   719                                        type: boolean
   720                                      name:
   721                                        type: string
   722                                      value:
   723                                        type: string
   724                                    required:
   725                                    - name
   726                                    - value
   727                                    type: object
   728                                  type: array
   729                              type: object
   730                            recurse:
   731                              type: boolean
   732                          type: object
   733                        helm:
   734                          description: Helm holds helm specific options
   735                          properties:
   736                            fileParameters:
   737                              description: FileParameters are file parameters to the helm template
   738                              items:
   739                                description: HelmFileParameter is a file parameter to a helm template
   740                                properties:
   741                                  name:
   742                                    description: Name is the name of the helm parameter
   743                                    type: string
   744                                  path:
   745                                    description: Path is the path value for the helm parameter
   746                                    type: string
   747                                type: object
   748                              type: array
   749                            parameters:
   750                              description: Parameters are parameters to the helm template
   751                              items:
   752                                description: HelmParameter is a parameter to a helm template
   753                                properties:
   754                                  forceString:
   755                                    description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings
   756                                    type: boolean
   757                                  name:
   758                                    description: Name is the name of the helm parameter
   759                                    type: string
   760                                  value:
   761                                    description: Value is the value for the helm parameter
   762                                    type: string
   763                                type: object
   764                              type: array
   765                            releaseName:
   766                              description: The Helm release name. If omitted it will use the application name
   767                              type: string
   768                            valueFiles:
   769                              description: ValuesFiles is a list of Helm value files to use when generating a template
   770                              items:
   771                                type: string
   772                              type: array
   773                            values:
   774                              description: Values is Helm values, typically defined as a block
   775                              type: string
   776                            version:
   777                              description: Version is the Helm version to use for templating with
   778                              type: string
   779                          type: object
   780                        ksonnet:
   781                          description: Ksonnet holds ksonnet specific options
   782                          properties:
   783                            environment:
   784                              description: Environment is a ksonnet application environment name
   785                              type: string
   786                            parameters:
   787                              description: Parameters are a list of ksonnet component parameter override values
   788                              items:
   789                                description: KsonnetParameter is a ksonnet component parameter
   790                                properties:
   791                                  component:
   792                                    type: string
   793                                  name:
   794                                    type: string
   795                                  value:
   796                                    type: string
   797                                required:
   798                                - name
   799                                - value
   800                                type: object
   801                              type: array
   802                          type: object
   803                        kustomize:
   804                          description: Kustomize holds kustomize specific options
   805                          properties:
   806                            commonAnnotations:
   807                              additionalProperties:
   808                                type: string
   809                              description: CommonAnnotations adds additional kustomize commonAnnotations
   810                              type: object
   811                            commonLabels:
   812                              additionalProperties:
   813                                type: string
   814                              description: CommonLabels adds additional kustomize commonLabels
   815                              type: object
   816                            images:
   817                              description: Images are kustomize image overrides
   818                              items:
   819                                type: string
   820                              type: array
   821                            namePrefix:
   822                              description: NamePrefix is a prefix appended to resources for kustomize apps
   823                              type: string
   824                            nameSuffix:
   825                              description: NameSuffix is a suffix appended to resources for kustomize apps
   826                              type: string
   827                            version:
   828                              description: Version contains optional Kustomize version
   829                              type: string
   830                          type: object
   831                        path:
   832                          description: Path is a directory path within the Git repository
   833                          type: string
   834                        plugin:
   835                          description: ConfigManagementPlugin holds config management plugin specific options
   836                          properties:
   837                            env:
   838                              items:
   839                                properties:
   840                                  name:
   841                                    description: the name, usually uppercase
   842                                    type: string
   843                                  value:
   844                                    description: the value
   845                                    type: string
   846                                required:
   847                                - name
   848                                - value
   849                                type: object
   850                              type: array
   851                            name:
   852                              type: string
   853                          type: object
   854                        repoURL:
   855                          description: RepoURL is the repository URL of the application manifests
   856                          type: string
   857                        targetRevision:
   858                          description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD
   859                          type: string
   860                      required:
   861                      - repoURL
   862                      type: object
   863                  required:
   864                  - deployedAt
   865                  - id
   866                  - revision
   867                  type: object
   868                type: array
   869              observedAt:
   870                description: 'ObservedAt indicates when the application state was updated without querying latest git state Deprecated: controller no longer updates ObservedAt field'
   871                format: date-time
   872                type: string
   873              operationState:
   874                description: OperationState contains information about state of currently performing operation on application.
   875                properties:
   876                  finishedAt:
   877                    description: FinishedAt contains time of operation completion
   878                    format: date-time
   879                    type: string
   880                  message:
   881                    description: Message hold any pertinent messages when attempting to perform operation (typically errors).
   882                    type: string
   883                  operation:
   884                    description: Operation is the original requested operation
   885                    properties:
   886                      info:
   887                        items:
   888                          properties:
   889                            name:
   890                              type: string
   891                            value:
   892                              type: string
   893                          required:
   894                          - name
   895                          - value
   896                          type: object
   897                        type: array
   898                      initiatedBy:
   899                        description: OperationInitiator holds information about the operation initiator
   900                        properties:
   901                          automated:
   902                            description: Automated is set to true if operation was initiated automatically by the application controller.
   903                            type: boolean
   904                          username:
   905                            description: Name of a user who started operation.
   906                            type: string
   907                        type: object
   908                      retry:
   909                        description: Retry controls failed sync retry behavior
   910                        properties:
   911                          backoff:
   912                            description: Backoff is a backoff strategy
   913                            properties:
   914                              duration:
   915                                description: Duration is the amount to back off. Default unit is seconds, but could also be a duration (e.g. "2m", "1h")
   916                                type: string
   917                              factor:
   918                                description: Factor is a factor to multiply the base duration after each failed retry
   919                                format: int64
   920                                type: integer
   921                              maxDuration:
   922                                description: MaxDuration is the maximum amount of time allowed for the backoff strategy
   923                                type: string
   924                            type: object
   925                          limit:
   926                            description: Limit is the maximum number of attempts when retrying a container
   927                            format: int64
   928                            type: integer
   929                        type: object
   930                      sync:
   931                        description: SyncOperation contains sync operation details.
   932                        properties:
   933                          dryRun:
   934                            description: DryRun will perform a `kubectl apply --dry-run` without actually performing the sync
   935                            type: boolean
   936                          manifests:
   937                            description: Manifests is an optional field that overrides sync source with a local directory for development
   938                            items:
   939                              type: string
   940                            type: array
   941                          prune:
   942                            description: Prune deletes resources that are no longer tracked in git
   943                            type: boolean
   944                          resources:
   945                            description: Resources describes which resources to sync
   946                            items:
   947                              description: SyncOperationResource contains resources to sync.
   948                              properties:
   949                                group:
   950                                  type: string
   951                                kind:
   952                                  type: string
   953                                name:
   954                                  type: string
   955                                namespace:
   956                                  type: string
   957                              required:
   958                              - kind
   959                              - name
   960                              type: object
   961                            type: array
   962                          revision:
   963                            description: Revision is the revision in which to sync the application to. If omitted, will use the revision specified in app spec.
   964                            type: string
   965                          source:
   966                            description: Source overrides the source definition set in the application. This is typically set in a Rollback operation and nil during a Sync operation
   967                            properties:
   968                              chart:
   969                                description: Chart is a Helm chart name
   970                                type: string
   971                              directory:
   972                                description: Directory holds path/directory specific options
   973                                properties:
   974                                  exclude:
   975                                    type: string
   976                                  jsonnet:
   977                                    description: ApplicationSourceJsonnet holds jsonnet specific options
   978                                    properties:
   979                                      extVars:
   980                                        description: ExtVars is a list of Jsonnet External Variables
   981                                        items:
   982                                          description: JsonnetVar is a jsonnet variable
   983                                          properties:
   984                                            code:
   985                                              type: boolean
   986                                            name:
   987                                              type: string
   988                                            value:
   989                                              type: string
   990                                          required:
   991                                          - name
   992                                          - value
   993                                          type: object
   994                                        type: array
   995                                      libs:
   996                                        description: Additional library search dirs
   997                                        items:
   998                                          type: string
   999                                        type: array
  1000                                      tlas:
  1001                                        description: TLAS is a list of Jsonnet Top-level Arguments
  1002                                        items:
  1003                                          description: JsonnetVar is a jsonnet variable
  1004                                          properties:
  1005                                            code:
  1006                                              type: boolean
  1007                                            name:
  1008                                              type: string
  1009                                            value:
  1010                                              type: string
  1011                                          required:
  1012                                          - name
  1013                                          - value
  1014                                          type: object
  1015                                        type: array
  1016                                    type: object
  1017                                  recurse:
  1018                                    type: boolean
  1019                                type: object
  1020                              helm:
  1021                                description: Helm holds helm specific options
  1022                                properties:
  1023                                  fileParameters:
  1024                                    description: FileParameters are file parameters to the helm template
  1025                                    items:
  1026                                      description: HelmFileParameter is a file parameter to a helm template
  1027                                      properties:
  1028                                        name:
  1029                                          description: Name is the name of the helm parameter
  1030                                          type: string
  1031                                        path:
  1032                                          description: Path is the path value for the helm parameter
  1033                                          type: string
  1034                                      type: object
  1035                                    type: array
  1036                                  parameters:
  1037                                    description: Parameters are parameters to the helm template
  1038                                    items:
  1039                                      description: HelmParameter is a parameter to a helm template
  1040                                      properties:
  1041                                        forceString:
  1042                                          description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings
  1043                                          type: boolean
  1044                                        name:
  1045                                          description: Name is the name of the helm parameter
  1046                                          type: string
  1047                                        value:
  1048                                          description: Value is the value for the helm parameter
  1049                                          type: string
  1050                                      type: object
  1051                                    type: array
  1052                                  releaseName:
  1053                                    description: The Helm release name. If omitted it will use the application name
  1054                                    type: string
  1055                                  valueFiles:
  1056                                    description: ValuesFiles is a list of Helm value files to use when generating a template
  1057                                    items:
  1058                                      type: string
  1059                                    type: array
  1060                                  values:
  1061                                    description: Values is Helm values, typically defined as a block
  1062                                    type: string
  1063                                  version:
  1064                                    description: Version is the Helm version to use for templating with
  1065                                    type: string
  1066                                type: object
  1067                              ksonnet:
  1068                                description: Ksonnet holds ksonnet specific options
  1069                                properties:
  1070                                  environment:
  1071                                    description: Environment is a ksonnet application environment name
  1072                                    type: string
  1073                                  parameters:
  1074                                    description: Parameters are a list of ksonnet component parameter override values
  1075                                    items:
  1076                                      description: KsonnetParameter is a ksonnet component parameter
  1077                                      properties:
  1078                                        component:
  1079                                          type: string
  1080                                        name:
  1081                                          type: string
  1082                                        value:
  1083                                          type: string
  1084                                      required:
  1085                                      - name
  1086                                      - value
  1087                                      type: object
  1088                                    type: array
  1089                                type: object
  1090                              kustomize:
  1091                                description: Kustomize holds kustomize specific options
  1092                                properties:
  1093                                  commonAnnotations:
  1094                                    additionalProperties:
  1095                                      type: string
  1096                                    description: CommonAnnotations adds additional kustomize commonAnnotations
  1097                                    type: object
  1098                                  commonLabels:
  1099                                    additionalProperties:
  1100                                      type: string
  1101                                    description: CommonLabels adds additional kustomize commonLabels
  1102                                    type: object
  1103                                  images:
  1104                                    description: Images are kustomize image overrides
  1105                                    items:
  1106                                      type: string
  1107                                    type: array
  1108                                  namePrefix:
  1109                                    description: NamePrefix is a prefix appended to resources for kustomize apps
  1110                                    type: string
  1111                                  nameSuffix:
  1112                                    description: NameSuffix is a suffix appended to resources for kustomize apps
  1113                                    type: string
  1114                                  version:
  1115                                    description: Version contains optional Kustomize version
  1116                                    type: string
  1117                                type: object
  1118                              path:
  1119                                description: Path is a directory path within the Git repository
  1120                                type: string
  1121                              plugin:
  1122                                description: ConfigManagementPlugin holds config management plugin specific options
  1123                                properties:
  1124                                  env:
  1125                                    items:
  1126                                      properties:
  1127                                        name:
  1128                                          description: the name, usually uppercase
  1129                                          type: string
  1130                                        value:
  1131                                          description: the value
  1132                                          type: string
  1133                                      required:
  1134                                      - name
  1135                                      - value
  1136                                      type: object
  1137                                    type: array
  1138                                  name:
  1139                                    type: string
  1140                                type: object
  1141                              repoURL:
  1142                                description: RepoURL is the repository URL of the application manifests
  1143                                type: string
  1144                              targetRevision:
  1145                                description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD
  1146                                type: string
  1147                            required:
  1148                            - repoURL
  1149                            type: object
  1150                          syncOptions:
  1151                            description: SyncOptions provide per-sync sync-options, e.g. Validate=false
  1152                            items:
  1153                              type: string
  1154                            type: array
  1155                          syncStrategy:
  1156                            description: SyncStrategy describes how to perform the sync
  1157                            properties:
  1158                              apply:
  1159                                description: Apply will perform a `kubectl apply` to perform the sync.
  1160                                properties:
  1161                                  force:
  1162                                    description: Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.
  1163                                    type: boolean
  1164                                type: object
  1165                              hook:
  1166                                description: Hook will submit any referenced resources to perform the sync. This is the default strategy
  1167                                properties:
  1168                                  force:
  1169                                    description: Force indicates whether or not to supply the --force flag to `kubectl apply`. The --force flag deletes and re-create the resource, when PATCH encounters conflict and has retried for 5 times.
  1170                                    type: boolean
  1171                                type: object
  1172                            type: object
  1173                        type: object
  1174                    type: object
  1175                  phase:
  1176                    description: Phase is the current phase of the operation
  1177                    type: string
  1178                  retryCount:
  1179                    description: RetryCount contains time of operation retries
  1180                    format: int64
  1181                    type: integer
  1182                  startedAt:
  1183                    description: StartedAt contains time of operation start
  1184                    format: date-time
  1185                    type: string
  1186                  syncResult:
  1187                    description: SyncResult is the result of a Sync operation
  1188                    properties:
  1189                      resources:
  1190                        description: Resources holds the sync result of each individual resource
  1191                        items:
  1192                          description: ResourceResult holds the operation result details of a specific resource
  1193                          properties:
  1194                            group:
  1195                              type: string
  1196                            hookPhase:
  1197                              description: 'the state of any operation associated with this resource OR hook note: can contain values for non-hook resources'
  1198                              type: string
  1199                            hookType:
  1200                              description: the type of the hook, empty for non-hook resources
  1201                              type: string
  1202                            kind:
  1203                              type: string
  1204                            message:
  1205                              description: message for the last sync OR operation
  1206                              type: string
  1207                            name:
  1208                              type: string
  1209                            namespace:
  1210                              type: string
  1211                            status:
  1212                              description: the final result of the sync, this is be empty if the resources is yet to be applied/pruned and is always zero-value for hooks
  1213                              type: string
  1214                            syncPhase:
  1215                              description: indicates the particular phase of the sync that this is for
  1216                              type: string
  1217                            version:
  1218                              type: string
  1219                          required:
  1220                          - group
  1221                          - kind
  1222                          - name
  1223                          - namespace
  1224                          - version
  1225                          type: object
  1226                        type: array
  1227                      revision:
  1228                        description: Revision holds the revision of the sync
  1229                        type: string
  1230                      source:
  1231                        description: Source records the application source information of the sync, used for comparing auto-sync
  1232                        properties:
  1233                          chart:
  1234                            description: Chart is a Helm chart name
  1235                            type: string
  1236                          directory:
  1237                            description: Directory holds path/directory specific options
  1238                            properties:
  1239                              exclude:
  1240                                type: string
  1241                              jsonnet:
  1242                                description: ApplicationSourceJsonnet holds jsonnet specific options
  1243                                properties:
  1244                                  extVars:
  1245                                    description: ExtVars is a list of Jsonnet External Variables
  1246                                    items:
  1247                                      description: JsonnetVar is a jsonnet variable
  1248                                      properties:
  1249                                        code:
  1250                                          type: boolean
  1251                                        name:
  1252                                          type: string
  1253                                        value:
  1254                                          type: string
  1255                                      required:
  1256                                      - name
  1257                                      - value
  1258                                      type: object
  1259                                    type: array
  1260                                  libs:
  1261                                    description: Additional library search dirs
  1262                                    items:
  1263                                      type: string
  1264                                    type: array
  1265                                  tlas:
  1266                                    description: TLAS is a list of Jsonnet Top-level Arguments
  1267                                    items:
  1268                                      description: JsonnetVar is a jsonnet variable
  1269                                      properties:
  1270                                        code:
  1271                                          type: boolean
  1272                                        name:
  1273                                          type: string
  1274                                        value:
  1275                                          type: string
  1276                                      required:
  1277                                      - name
  1278                                      - value
  1279                                      type: object
  1280                                    type: array
  1281                                type: object
  1282                              recurse:
  1283                                type: boolean
  1284                            type: object
  1285                          helm:
  1286                            description: Helm holds helm specific options
  1287                            properties:
  1288                              fileParameters:
  1289                                description: FileParameters are file parameters to the helm template
  1290                                items:
  1291                                  description: HelmFileParameter is a file parameter to a helm template
  1292                                  properties:
  1293                                    name:
  1294                                      description: Name is the name of the helm parameter
  1295                                      type: string
  1296                                    path:
  1297                                      description: Path is the path value for the helm parameter
  1298                                      type: string
  1299                                  type: object
  1300                                type: array
  1301                              parameters:
  1302                                description: Parameters are parameters to the helm template
  1303                                items:
  1304                                  description: HelmParameter is a parameter to a helm template
  1305                                  properties:
  1306                                    forceString:
  1307                                      description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings
  1308                                      type: boolean
  1309                                    name:
  1310                                      description: Name is the name of the helm parameter
  1311                                      type: string
  1312                                    value:
  1313                                      description: Value is the value for the helm parameter
  1314                                      type: string
  1315                                  type: object
  1316                                type: array
  1317                              releaseName:
  1318                                description: The Helm release name. If omitted it will use the application name
  1319                                type: string
  1320                              valueFiles:
  1321                                description: ValuesFiles is a list of Helm value files to use when generating a template
  1322                                items:
  1323                                  type: string
  1324                                type: array
  1325                              values:
  1326                                description: Values is Helm values, typically defined as a block
  1327                                type: string
  1328                              version:
  1329                                description: Version is the Helm version to use for templating with
  1330                                type: string
  1331                            type: object
  1332                          ksonnet:
  1333                            description: Ksonnet holds ksonnet specific options
  1334                            properties:
  1335                              environment:
  1336                                description: Environment is a ksonnet application environment name
  1337                                type: string
  1338                              parameters:
  1339                                description: Parameters are a list of ksonnet component parameter override values
  1340                                items:
  1341                                  description: KsonnetParameter is a ksonnet component parameter
  1342                                  properties:
  1343                                    component:
  1344                                      type: string
  1345                                    name:
  1346                                      type: string
  1347                                    value:
  1348                                      type: string
  1349                                  required:
  1350                                  - name
  1351                                  - value
  1352                                  type: object
  1353                                type: array
  1354                            type: object
  1355                          kustomize:
  1356                            description: Kustomize holds kustomize specific options
  1357                            properties:
  1358                              commonAnnotations:
  1359                                additionalProperties:
  1360                                  type: string
  1361                                description: CommonAnnotations adds additional kustomize commonAnnotations
  1362                                type: object
  1363                              commonLabels:
  1364                                additionalProperties:
  1365                                  type: string
  1366                                description: CommonLabels adds additional kustomize commonLabels
  1367                                type: object
  1368                              images:
  1369                                description: Images are kustomize image overrides
  1370                                items:
  1371                                  type: string
  1372                                type: array
  1373                              namePrefix:
  1374                                description: NamePrefix is a prefix appended to resources for kustomize apps
  1375                                type: string
  1376                              nameSuffix:
  1377                                description: NameSuffix is a suffix appended to resources for kustomize apps
  1378                                type: string
  1379                              version:
  1380                                description: Version contains optional Kustomize version
  1381                                type: string
  1382                            type: object
  1383                          path:
  1384                            description: Path is a directory path within the Git repository
  1385                            type: string
  1386                          plugin:
  1387                            description: ConfigManagementPlugin holds config management plugin specific options
  1388                            properties:
  1389                              env:
  1390                                items:
  1391                                  properties:
  1392                                    name:
  1393                                      description: the name, usually uppercase
  1394                                      type: string
  1395                                    value:
  1396                                      description: the value
  1397                                      type: string
  1398                                  required:
  1399                                  - name
  1400                                  - value
  1401                                  type: object
  1402                                type: array
  1403                              name:
  1404                                type: string
  1405                            type: object
  1406                          repoURL:
  1407                            description: RepoURL is the repository URL of the application manifests
  1408                            type: string
  1409                          targetRevision:
  1410                            description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD
  1411                            type: string
  1412                        required:
  1413                        - repoURL
  1414                        type: object
  1415                    required:
  1416                    - revision
  1417                    type: object
  1418                required:
  1419                - operation
  1420                - phase
  1421                - startedAt
  1422                type: object
  1423              reconciledAt:
  1424                description: ReconciledAt indicates when the application state was reconciled using the latest git version
  1425                format: date-time
  1426                type: string
  1427              resources:
  1428                items:
  1429                  description: ResourceStatus holds the current sync and health status of a resource
  1430                  properties:
  1431                    group:
  1432                      type: string
  1433                    health:
  1434                      properties:
  1435                        message:
  1436                          type: string
  1437                        status:
  1438                          description: Represents resource health status
  1439                          type: string
  1440                      type: object
  1441                    hook:
  1442                      type: boolean
  1443                    kind:
  1444                      type: string
  1445                    name:
  1446                      type: string
  1447                    namespace:
  1448                      type: string
  1449                    requiresPruning:
  1450                      type: boolean
  1451                    status:
  1452                      description: SyncStatusCode is a type which represents possible comparison results
  1453                      type: string
  1454                    version:
  1455                      type: string
  1456                  type: object
  1457                type: array
  1458              sourceType:
  1459                type: string
  1460              summary:
  1461                properties:
  1462                  externalURLs:
  1463                    description: ExternalURLs holds all external URLs of application child resources.
  1464                    items:
  1465                      type: string
  1466                    type: array
  1467                  images:
  1468                    description: Images holds all images of application child resources.
  1469                    items:
  1470                      type: string
  1471                    type: array
  1472                type: object
  1473              sync:
  1474                description: SyncStatus is a comparison result of application spec and deployed application.
  1475                properties:
  1476                  comparedTo:
  1477                    description: ComparedTo contains application source and target which was used for resources comparison
  1478                    properties:
  1479                      destination:
  1480                        description: ApplicationDestination contains deployment destination information
  1481                        properties:
  1482                          name:
  1483                            description: Name of the destination cluster which can be used instead of server (url) field
  1484                            type: string
  1485                          namespace:
  1486                            description: Namespace overrides the environment namespace value in the ksonnet app.yaml
  1487                            type: string
  1488                          server:
  1489                            description: Server overrides the environment server value in the ksonnet app.yaml
  1490                            type: string
  1491                        type: object
  1492                      source:
  1493                        description: ApplicationSource contains information about github repository, path within repository and target application environment.
  1494                        properties:
  1495                          chart:
  1496                            description: Chart is a Helm chart name
  1497                            type: string
  1498                          directory:
  1499                            description: Directory holds path/directory specific options
  1500                            properties:
  1501                              exclude:
  1502                                type: string
  1503                              jsonnet:
  1504                                description: ApplicationSourceJsonnet holds jsonnet specific options
  1505                                properties:
  1506                                  extVars:
  1507                                    description: ExtVars is a list of Jsonnet External Variables
  1508                                    items:
  1509                                      description: JsonnetVar is a jsonnet variable
  1510                                      properties:
  1511                                        code:
  1512                                          type: boolean
  1513                                        name:
  1514                                          type: string
  1515                                        value:
  1516                                          type: string
  1517                                      required:
  1518                                      - name
  1519                                      - value
  1520                                      type: object
  1521                                    type: array
  1522                                  libs:
  1523                                    description: Additional library search dirs
  1524                                    items:
  1525                                      type: string
  1526                                    type: array
  1527                                  tlas:
  1528                                    description: TLAS is a list of Jsonnet Top-level Arguments
  1529                                    items:
  1530                                      description: JsonnetVar is a jsonnet variable
  1531                                      properties:
  1532                                        code:
  1533                                          type: boolean
  1534                                        name:
  1535                                          type: string
  1536                                        value:
  1537                                          type: string
  1538                                      required:
  1539                                      - name
  1540                                      - value
  1541                                      type: object
  1542                                    type: array
  1543                                type: object
  1544                              recurse:
  1545                                type: boolean
  1546                            type: object
  1547                          helm:
  1548                            description: Helm holds helm specific options
  1549                            properties:
  1550                              fileParameters:
  1551                                description: FileParameters are file parameters to the helm template
  1552                                items:
  1553                                  description: HelmFileParameter is a file parameter to a helm template
  1554                                  properties:
  1555                                    name:
  1556                                      description: Name is the name of the helm parameter
  1557                                      type: string
  1558                                    path:
  1559                                      description: Path is the path value for the helm parameter
  1560                                      type: string
  1561                                  type: object
  1562                                type: array
  1563                              parameters:
  1564                                description: Parameters are parameters to the helm template
  1565                                items:
  1566                                  description: HelmParameter is a parameter to a helm template
  1567                                  properties:
  1568                                    forceString:
  1569                                      description: ForceString determines whether to tell Helm to interpret booleans and numbers as strings
  1570                                      type: boolean
  1571                                    name:
  1572                                      description: Name is the name of the helm parameter
  1573                                      type: string
  1574                                    value:
  1575                                      description: Value is the value for the helm parameter
  1576                                      type: string
  1577                                  type: object
  1578                                type: array
  1579                              releaseName:
  1580                                description: The Helm release name. If omitted it will use the application name
  1581                                type: string
  1582                              valueFiles:
  1583                                description: ValuesFiles is a list of Helm value files to use when generating a template
  1584                                items:
  1585                                  type: string
  1586                                type: array
  1587                              values:
  1588                                description: Values is Helm values, typically defined as a block
  1589                                type: string
  1590                              version:
  1591                                description: Version is the Helm version to use for templating with
  1592                                type: string
  1593                            type: object
  1594                          ksonnet:
  1595                            description: Ksonnet holds ksonnet specific options
  1596                            properties:
  1597                              environment:
  1598                                description: Environment is a ksonnet application environment name
  1599                                type: string
  1600                              parameters:
  1601                                description: Parameters are a list of ksonnet component parameter override values
  1602                                items:
  1603                                  description: KsonnetParameter is a ksonnet component parameter
  1604                                  properties:
  1605                                    component:
  1606                                      type: string
  1607                                    name:
  1608                                      type: string
  1609                                    value:
  1610                                      type: string
  1611                                  required:
  1612                                  - name
  1613                                  - value
  1614                                  type: object
  1615                                type: array
  1616                            type: object
  1617                          kustomize:
  1618                            description: Kustomize holds kustomize specific options
  1619                            properties:
  1620                              commonAnnotations:
  1621                                additionalProperties:
  1622                                  type: string
  1623                                description: CommonAnnotations adds additional kustomize commonAnnotations
  1624                                type: object
  1625                              commonLabels:
  1626                                additionalProperties:
  1627                                  type: string
  1628                                description: CommonLabels adds additional kustomize commonLabels
  1629                                type: object
  1630                              images:
  1631                                description: Images are kustomize image overrides
  1632                                items:
  1633                                  type: string
  1634                                type: array
  1635                              namePrefix:
  1636                                description: NamePrefix is a prefix appended to resources for kustomize apps
  1637                                type: string
  1638                              nameSuffix:
  1639                                description: NameSuffix is a suffix appended to resources for kustomize apps
  1640                                type: string
  1641                              version:
  1642                                description: Version contains optional Kustomize version
  1643                                type: string
  1644                            type: object
  1645                          path:
  1646                            description: Path is a directory path within the Git repository
  1647                            type: string
  1648                          plugin:
  1649                            description: ConfigManagementPlugin holds config management plugin specific options
  1650                            properties:
  1651                              env:
  1652                                items:
  1653                                  properties:
  1654                                    name:
  1655                                      description: the name, usually uppercase
  1656                                      type: string
  1657                                    value:
  1658                                      description: the value
  1659                                      type: string
  1660                                  required:
  1661                                  - name
  1662                                  - value
  1663                                  type: object
  1664                                type: array
  1665                              name:
  1666                                type: string
  1667                            type: object
  1668                          repoURL:
  1669                            description: RepoURL is the repository URL of the application manifests
  1670                            type: string
  1671                          targetRevision:
  1672                            description: TargetRevision defines the commit, tag, or branch in which to sync the application to. If omitted, will sync to HEAD
  1673                            type: string
  1674                        required:
  1675                        - repoURL
  1676                        type: object
  1677                    required:
  1678                    - destination
  1679                    - source
  1680                    type: object
  1681                  revision:
  1682                    type: string
  1683                  status:
  1684                    description: SyncStatusCode is a type which represents possible comparison results
  1685                    type: string
  1686                required:
  1687                - status
  1688                type: object
  1689            type: object
  1690        required:
  1691        - metadata
  1692        - spec
  1693        type: object
  1694    version: v1alpha1
  1695    versions:
  1696    - name: v1alpha1
  1697      served: true
  1698      storage: true
  1699  ---
  1700  apiVersion: apiextensions.k8s.io/v1beta1
  1701  kind: CustomResourceDefinition
  1702  metadata:
  1703    labels:
  1704      app.kubernetes.io/name: appprojects.argoproj.io
  1705      app.kubernetes.io/part-of: argocd
  1706    name: appprojects.argoproj.io
  1707  spec:
  1708    group: argoproj.io
  1709    names:
  1710      kind: AppProject
  1711      listKind: AppProjectList
  1712      plural: appprojects
  1713      shortNames:
  1714      - appproj
  1715      - appprojs
  1716      singular: appproject
  1717    scope: Namespaced
  1718    validation:
  1719      openAPIV3Schema:
  1720        description: 'AppProject provides a logical grouping of applications, providing controls for: * where the apps may deploy to (cluster whitelist) * what may be deployed (repository whitelist, resource whitelist/blacklist) * who can access these applications (roles, OIDC group claims bindings) * and what they can do (RBAC policies) * automation access to these roles (JWT tokens)'
  1721        properties:
  1722          apiVersion:
  1723            description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1724            type: string
  1725          kind:
  1726            description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1727            type: string
  1728          metadata:
  1729            type: object
  1730          spec:
  1731            description: AppProjectSpec is the specification of an AppProject
  1732            properties:
  1733              clusterResourceBlacklist:
  1734                description: ClusterResourceBlacklist contains list of blacklisted cluster level resources
  1735                items:
  1736                  description: GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types
  1737                  properties:
  1738                    group:
  1739                      type: string
  1740                    kind:
  1741                      type: string
  1742                  required:
  1743                  - group
  1744                  - kind
  1745                  type: object
  1746                type: array
  1747              clusterResourceWhitelist:
  1748                description: ClusterResourceWhitelist contains list of whitelisted cluster level resources
  1749                items:
  1750                  description: GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types
  1751                  properties:
  1752                    group:
  1753                      type: string
  1754                    kind:
  1755                      type: string
  1756                  required:
  1757                  - group
  1758                  - kind
  1759                  type: object
  1760                type: array
  1761              description:
  1762                description: Description contains optional project description
  1763                type: string
  1764              destinations:
  1765                description: Destinations contains list of destinations available for deployment
  1766                items:
  1767                  description: ApplicationDestination contains deployment destination information
  1768                  properties:
  1769                    name:
  1770                      description: Name of the destination cluster which can be used instead of server (url) field
  1771                      type: string
  1772                    namespace:
  1773                      description: Namespace overrides the environment namespace value in the ksonnet app.yaml
  1774                      type: string
  1775                    server:
  1776                      description: Server overrides the environment server value in the ksonnet app.yaml
  1777                      type: string
  1778                  type: object
  1779                type: array
  1780              namespaceResourceBlacklist:
  1781                description: NamespaceResourceBlacklist contains list of blacklisted namespace level resources
  1782                items:
  1783                  description: GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types
  1784                  properties:
  1785                    group:
  1786                      type: string
  1787                    kind:
  1788                      type: string
  1789                  required:
  1790                  - group
  1791                  - kind
  1792                  type: object
  1793                type: array
  1794              namespaceResourceWhitelist:
  1795                description: NamespaceResourceWhitelist contains list of whitelisted namespace level resources
  1796                items:
  1797                  description: GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying concepts during lookup stages without having partially valid types
  1798                  properties:
  1799                    group:
  1800                      type: string
  1801                    kind:
  1802                      type: string
  1803                  required:
  1804                  - group
  1805                  - kind
  1806                  type: object
  1807                type: array
  1808              orphanedResources:
  1809                description: OrphanedResources specifies if controller should monitor orphaned resources of apps in this project
  1810                properties:
  1811                  ignore:
  1812                    items:
  1813                      properties:
  1814                        group:
  1815                          type: string
  1816                        kind:
  1817                          type: string
  1818                        name:
  1819                          type: string
  1820                      type: object
  1821                    type: array
  1822                  warn:
  1823                    description: Warn indicates if warning condition should be created for apps which have orphaned resources
  1824                    type: boolean
  1825                type: object
  1826              roles:
  1827                description: Roles are user defined RBAC roles associated with this project
  1828                items:
  1829                  description: ProjectRole represents a role that has access to a project
  1830                  properties:
  1831                    description:
  1832                      description: Description is a description of the role
  1833                      type: string
  1834                    groups:
  1835                      description: Groups are a list of OIDC group claims bound to this role
  1836                      items:
  1837                        type: string
  1838                      type: array
  1839                    jwtTokens:
  1840                      description: JWTTokens are a list of generated JWT tokens bound to this role
  1841                      items:
  1842                        description: JWTToken holds the issuedAt and expiresAt values of a token
  1843                        properties:
  1844                          exp:
  1845                            format: int64
  1846                            type: integer
  1847                          iat:
  1848                            format: int64
  1849                            type: integer
  1850                          id:
  1851                            type: string
  1852                        required:
  1853                        - iat
  1854                        type: object
  1855                      type: array
  1856                    name:
  1857                      description: Name is a name for this role
  1858                      type: string
  1859                    policies:
  1860                      description: Policies Stores a list of casbin formated strings that define access policies for the role in the project
  1861                      items:
  1862                        type: string
  1863                      type: array
  1864                  required:
  1865                  - name
  1866                  type: object
  1867                type: array
  1868              signatureKeys:
  1869                description: List of PGP key IDs that commits to be synced to must be signed with
  1870                items:
  1871                  description: SignatureKey is the specification of a key required to verify commit signatures with
  1872                  properties:
  1873                    keyID:
  1874                      description: The ID of the key in hexadecimal notation
  1875                      type: string
  1876                  required:
  1877                  - keyID
  1878                  type: object
  1879                type: array
  1880              sourceRepos:
  1881                description: SourceRepos contains list of repository URLs which can be used for deployment
  1882                items:
  1883                  type: string
  1884                type: array
  1885              syncWindows:
  1886                description: SyncWindows controls when syncs can be run for apps in this project
  1887                items:
  1888                  description: SyncWindow contains the kind, time, duration and attributes that are used to assign the syncWindows to apps
  1889                  properties:
  1890                    applications:
  1891                      description: Applications contains a list of applications that the window will apply to
  1892                      items:
  1893                        type: string
  1894                      type: array
  1895                    clusters:
  1896                      description: Clusters contains a list of clusters that the window will apply to
  1897                      items:
  1898                        type: string
  1899                      type: array
  1900                    duration:
  1901                      description: Duration is the amount of time the sync window will be open
  1902                      type: string
  1903                    kind:
  1904                      description: Kind defines if the window allows or blocks syncs
  1905                      type: string
  1906                    manualSync:
  1907                      description: ManualSync enables manual syncs when they would otherwise be blocked
  1908                      type: boolean
  1909                    namespaces:
  1910                      description: Namespaces contains a list of namespaces that the window will apply to
  1911                      items:
  1912                        type: string
  1913                      type: array
  1914                    schedule:
  1915                      description: Schedule is the time the window will begin, specified in cron format
  1916                      type: string
  1917                  type: object
  1918                type: array
  1919            type: object
  1920        required:
  1921        - metadata
  1922        - spec
  1923        type: object
  1924    version: v1alpha1
  1925    versions:
  1926    - name: v1alpha1
  1927      served: true
  1928      storage: true
  1929  ---
  1930  apiVersion: v1
  1931  kind: ServiceAccount
  1932  metadata:
  1933    labels:
  1934      app.kubernetes.io/component: application-controller
  1935      app.kubernetes.io/name: argocd-application-controller
  1936      app.kubernetes.io/part-of: argocd
  1937    name: argocd-application-controller
  1938  ---
  1939  apiVersion: v1
  1940  kind: ServiceAccount
  1941  metadata:
  1942    labels:
  1943      app.kubernetes.io/component: dex-server
  1944      app.kubernetes.io/name: argocd-dex-server
  1945      app.kubernetes.io/part-of: argocd
  1946    name: argocd-dex-server
  1947  ---
  1948  apiVersion: v1
  1949  kind: ServiceAccount
  1950  metadata:
  1951    labels:
  1952      app.kubernetes.io/component: redis
  1953      app.kubernetes.io/name: argocd-redis-ha
  1954      app.kubernetes.io/part-of: argocd
  1955    name: argocd-redis-ha
  1956  ---
  1957  apiVersion: v1
  1958  kind: ServiceAccount
  1959  metadata:
  1960    labels:
  1961      app.kubernetes.io/component: redis
  1962      app.kubernetes.io/name: argocd-redis-ha-haproxy
  1963      app.kubernetes.io/part-of: argocd
  1964    name: argocd-redis-ha-haproxy
  1965  ---
  1966  apiVersion: v1
  1967  kind: ServiceAccount
  1968  metadata:
  1969    labels:
  1970      app.kubernetes.io/component: server
  1971      app.kubernetes.io/name: argocd-server
  1972      app.kubernetes.io/part-of: argocd
  1973    name: argocd-server
  1974  ---
  1975  apiVersion: rbac.authorization.k8s.io/v1
  1976  kind: Role
  1977  metadata:
  1978    labels:
  1979      app.kubernetes.io/component: redis
  1980      app.kubernetes.io/name: argocd-redis-haproxy
  1981      app.kubernetes.io/part-of: argocd
  1982    name: argocd-redis-haproxy
  1983    namespace: argocd
  1984  rules:
  1985  - apiGroups:
  1986    - security.openshift.io
  1987    resourceNames:
  1988    - nonroot
  1989    resources:
  1990    - securitycontextconstraints
  1991    verbs:
  1992    - use
  1993  ---
  1994  apiVersion: rbac.authorization.k8s.io/v1
  1995  kind: Role
  1996  metadata:
  1997    labels:
  1998      app.kubernetes.io/component: application-controller
  1999      app.kubernetes.io/name: argocd-application-controller
  2000      app.kubernetes.io/part-of: argocd
  2001    name: argocd-application-controller
  2002  rules:
  2003  - apiGroups:
  2004    - ""
  2005    resources:
  2006    - secrets
  2007    - configmaps
  2008    verbs:
  2009    - get
  2010    - list
  2011    - watch
  2012  - apiGroups:
  2013    - argoproj.io
  2014    resources:
  2015    - applications
  2016    - appprojects
  2017    verbs:
  2018    - create
  2019    - get
  2020    - list
  2021    - watch
  2022    - update
  2023    - patch
  2024    - delete
  2025  - apiGroups:
  2026    - ""
  2027    resources:
  2028    - events
  2029    verbs:
  2030    - create
  2031    - list
  2032  ---
  2033  apiVersion: rbac.authorization.k8s.io/v1
  2034  kind: Role
  2035  metadata:
  2036    labels:
  2037      app.kubernetes.io/component: dex-server
  2038      app.kubernetes.io/name: argocd-dex-server
  2039      app.kubernetes.io/part-of: argocd
  2040    name: argocd-dex-server
  2041  rules:
  2042  - apiGroups:
  2043    - ""
  2044    resources:
  2045    - secrets
  2046    - configmaps
  2047    verbs:
  2048    - get
  2049    - list
  2050    - watch
  2051  ---
  2052  apiVersion: rbac.authorization.k8s.io/v1
  2053  kind: Role
  2054  metadata:
  2055    labels:
  2056      app.kubernetes.io/component: redis
  2057      app.kubernetes.io/name: argocd-redis-ha
  2058      app.kubernetes.io/part-of: argocd
  2059    name: argocd-redis-ha
  2060  rules:
  2061  - apiGroups:
  2062    - ""
  2063    resources:
  2064    - endpoints
  2065    verbs:
  2066    - get
  2067  - apiGroups:
  2068    - security.openshift.io
  2069    resourceNames:
  2070    - nonroot
  2071    resources:
  2072    - securitycontextconstraints
  2073    verbs:
  2074    - use
  2075  ---
  2076  apiVersion: rbac.authorization.k8s.io/v1
  2077  kind: Role
  2078  metadata:
  2079    labels:
  2080      app.kubernetes.io/component: server
  2081      app.kubernetes.io/name: argocd-server
  2082      app.kubernetes.io/part-of: argocd
  2083    name: argocd-server
  2084  rules:
  2085  - apiGroups:
  2086    - ""
  2087    resources:
  2088    - secrets
  2089    - configmaps
  2090    verbs:
  2091    - create
  2092    - get
  2093    - list
  2094    - watch
  2095    - update
  2096    - patch
  2097    - delete
  2098  - apiGroups:
  2099    - argoproj.io
  2100    resources:
  2101    - applications
  2102    - appprojects
  2103    verbs:
  2104    - create
  2105    - get
  2106    - list
  2107    - watch
  2108    - update
  2109    - delete
  2110    - patch
  2111  - apiGroups:
  2112    - ""
  2113    resources:
  2114    - events
  2115    verbs:
  2116    - create
  2117    - list
  2118  ---
  2119  apiVersion: rbac.authorization.k8s.io/v1
  2120  kind: ClusterRole
  2121  metadata:
  2122    labels:
  2123      app.kubernetes.io/component: application-controller
  2124      app.kubernetes.io/name: argocd-application-controller
  2125      app.kubernetes.io/part-of: argocd
  2126    name: argocd-application-controller
  2127  rules:
  2128  - apiGroups:
  2129    - '*'
  2130    resources:
  2131    - '*'
  2132    verbs:
  2133    - '*'
  2134  - nonResourceURLs:
  2135    - '*'
  2136    verbs:
  2137    - '*'
  2138  ---
  2139  apiVersion: rbac.authorization.k8s.io/v1
  2140  kind: ClusterRole
  2141  metadata:
  2142    labels:
  2143      app.kubernetes.io/component: server
  2144      app.kubernetes.io/name: argocd-server
  2145      app.kubernetes.io/part-of: argocd
  2146    name: argocd-server
  2147  rules:
  2148  - apiGroups:
  2149    - '*'
  2150    resources:
  2151    - '*'
  2152    verbs:
  2153    - delete
  2154    - get
  2155    - patch
  2156  - apiGroups:
  2157    - ""
  2158    resources:
  2159    - events
  2160    verbs:
  2161    - list
  2162  - apiGroups:
  2163    - ""
  2164    resources:
  2165    - pods
  2166    - pods/log
  2167    verbs:
  2168    - get
  2169  ---
  2170  apiVersion: rbac.authorization.k8s.io/v1
  2171  kind: RoleBinding
  2172  metadata:
  2173    labels:
  2174      app.kubernetes.io/component: redis
  2175      app.kubernetes.io/name: argocd-redis-haproxy
  2176      app.kubernetes.io/part-of: argocd
  2177    name: argocd-redis-haproxy
  2178    namespace: argocd
  2179  roleRef:
  2180    apiGroup: rbac.authorization.k8s.io
  2181    kind: Role
  2182    name: argocd-redis-haproxy
  2183  subjects:
  2184  - kind: ServiceAccount
  2185    name: argocd-redis-haproxy
  2186  ---
  2187  apiVersion: rbac.authorization.k8s.io/v1
  2188  kind: RoleBinding
  2189  metadata:
  2190    labels:
  2191      app.kubernetes.io/component: application-controller
  2192      app.kubernetes.io/name: argocd-application-controller
  2193      app.kubernetes.io/part-of: argocd
  2194    name: argocd-application-controller
  2195  roleRef:
  2196    apiGroup: rbac.authorization.k8s.io
  2197    kind: Role
  2198    name: argocd-application-controller
  2199  subjects:
  2200  - kind: ServiceAccount
  2201    name: argocd-application-controller
  2202  ---
  2203  apiVersion: rbac.authorization.k8s.io/v1
  2204  kind: RoleBinding
  2205  metadata:
  2206    labels:
  2207      app.kubernetes.io/component: dex-server
  2208      app.kubernetes.io/name: argocd-dex-server
  2209      app.kubernetes.io/part-of: argocd
  2210    name: argocd-dex-server
  2211  roleRef:
  2212    apiGroup: rbac.authorization.k8s.io
  2213    kind: Role
  2214    name: argocd-dex-server
  2215  subjects:
  2216  - kind: ServiceAccount
  2217    name: argocd-dex-server
  2218  ---
  2219  apiVersion: rbac.authorization.k8s.io/v1
  2220  kind: RoleBinding
  2221  metadata:
  2222    labels:
  2223      app.kubernetes.io/component: redis
  2224      app.kubernetes.io/name: argocd-redis-ha
  2225      app.kubernetes.io/part-of: argocd
  2226    name: argocd-redis-ha
  2227  roleRef:
  2228    apiGroup: rbac.authorization.k8s.io
  2229    kind: Role
  2230    name: argocd-redis-ha
  2231  subjects:
  2232  - kind: ServiceAccount
  2233    name: argocd-redis-ha
  2234  ---
  2235  apiVersion: rbac.authorization.k8s.io/v1
  2236  kind: RoleBinding
  2237  metadata:
  2238    labels:
  2239      app.kubernetes.io/component: server
  2240      app.kubernetes.io/name: argocd-server
  2241      app.kubernetes.io/part-of: argocd
  2242    name: argocd-server
  2243  roleRef:
  2244    apiGroup: rbac.authorization.k8s.io
  2245    kind: Role
  2246    name: argocd-server
  2247  subjects:
  2248  - kind: ServiceAccount
  2249    name: argocd-server
  2250  ---
  2251  apiVersion: rbac.authorization.k8s.io/v1
  2252  kind: ClusterRoleBinding
  2253  metadata:
  2254    labels:
  2255      app.kubernetes.io/component: application-controller
  2256      app.kubernetes.io/name: argocd-application-controller
  2257      app.kubernetes.io/part-of: argocd
  2258    name: argocd-application-controller
  2259  roleRef:
  2260    apiGroup: rbac.authorization.k8s.io
  2261    kind: ClusterRole
  2262    name: argocd-application-controller
  2263  subjects:
  2264  - kind: ServiceAccount
  2265    name: argocd-application-controller
  2266    namespace: argocd
  2267  ---
  2268  apiVersion: rbac.authorization.k8s.io/v1
  2269  kind: ClusterRoleBinding
  2270  metadata:
  2271    labels:
  2272      app.kubernetes.io/component: server
  2273      app.kubernetes.io/name: argocd-server
  2274      app.kubernetes.io/part-of: argocd
  2275    name: argocd-server
  2276  roleRef:
  2277    apiGroup: rbac.authorization.k8s.io
  2278    kind: ClusterRole
  2279    name: argocd-server
  2280  subjects:
  2281  - kind: ServiceAccount
  2282    name: argocd-server
  2283    namespace: argocd
  2284  ---
  2285  apiVersion: v1
  2286  kind: ConfigMap
  2287  metadata:
  2288    labels:
  2289      app.kubernetes.io/name: argocd-cm
  2290      app.kubernetes.io/part-of: argocd
  2291    name: argocd-cm
  2292  ---
  2293  apiVersion: v1
  2294  kind: ConfigMap
  2295  metadata:
  2296    labels:
  2297      app.kubernetes.io/name: argocd-gpg-keys-cm
  2298      app.kubernetes.io/part-of: argocd
  2299    name: argocd-gpg-keys-cm
  2300  ---
  2301  apiVersion: v1
  2302  kind: ConfigMap
  2303  metadata:
  2304    labels:
  2305      app.kubernetes.io/name: argocd-rbac-cm
  2306      app.kubernetes.io/part-of: argocd
  2307    name: argocd-rbac-cm
  2308  ---
  2309  apiVersion: v1
  2310  data:
  2311    haproxy.cfg: |-
  2312      defaults REDIS
  2313        mode tcp
  2314        timeout connect 4s
  2315        timeout server 6m
  2316        timeout client 6m
  2317        timeout check 2s
  2318  
  2319      listen health_check_http_url
  2320        bind :8888
  2321        mode http
  2322        monitor-uri /healthz
  2323        option      dontlognull
  2324      # Check Sentinel and whether they are nominated master
  2325      backend check_if_redis_is_master_0
  2326        mode tcp
  2327        option tcp-check
  2328        tcp-check connect
  2329        tcp-check send PING\r\n
  2330        tcp-check expect string +PONG
  2331        tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n
  2332        tcp-check expect string REPLACE_ANNOUNCE0
  2333        tcp-check send QUIT\r\n
  2334        tcp-check expect string +OK
  2335        server R0 argocd-redis-ha-announce-0:26379 check inter 3s
  2336        server R1 argocd-redis-ha-announce-1:26379 check inter 3s
  2337        server R2 argocd-redis-ha-announce-2:26379 check inter 3s
  2338      # Check Sentinel and whether they are nominated master
  2339      backend check_if_redis_is_master_1
  2340        mode tcp
  2341        option tcp-check
  2342        tcp-check connect
  2343        tcp-check send PING\r\n
  2344        tcp-check expect string +PONG
  2345        tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n
  2346        tcp-check expect string REPLACE_ANNOUNCE1
  2347        tcp-check send QUIT\r\n
  2348        tcp-check expect string +OK
  2349        server R0 argocd-redis-ha-announce-0:26379 check inter 3s
  2350        server R1 argocd-redis-ha-announce-1:26379 check inter 3s
  2351        server R2 argocd-redis-ha-announce-2:26379 check inter 3s
  2352      # Check Sentinel and whether they are nominated master
  2353      backend check_if_redis_is_master_2
  2354        mode tcp
  2355        option tcp-check
  2356        tcp-check connect
  2357        tcp-check send PING\r\n
  2358        tcp-check expect string +PONG
  2359        tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n
  2360        tcp-check expect string REPLACE_ANNOUNCE2
  2361        tcp-check send QUIT\r\n
  2362        tcp-check expect string +OK
  2363        server R0 argocd-redis-ha-announce-0:26379 check inter 3s
  2364        server R1 argocd-redis-ha-announce-1:26379 check inter 3s
  2365        server R2 argocd-redis-ha-announce-2:26379 check inter 3s
  2366  
  2367      # decide redis backend to use
  2368      #master
  2369      frontend ft_redis_master
  2370        bind *:6379
  2371        use_backend bk_redis_master
  2372      # Check all redis servers to see if they think they are master
  2373      backend bk_redis_master
  2374        mode tcp
  2375        option tcp-check
  2376        tcp-check connect
  2377        tcp-check send PING\r\n
  2378        tcp-check expect string +PONG
  2379        tcp-check send info\ replication\r\n
  2380        tcp-check expect string role:master
  2381        tcp-check send QUIT\r\n
  2382        tcp-check expect string +OK
  2383        use-server R0 if { srv_is_up(R0) } { nbsrv(check_if_redis_is_master_0) ge 2 }
  2384        server R0 argocd-redis-ha-announce-0:6379 check inter 3s fall 1 rise 1
  2385        use-server R1 if { srv_is_up(R1) } { nbsrv(check_if_redis_is_master_1) ge 2 }
  2386        server R1 argocd-redis-ha-announce-1:6379 check inter 3s fall 1 rise 1
  2387        use-server R2 if { srv_is_up(R2) } { nbsrv(check_if_redis_is_master_2) ge 2 }
  2388        server R2 argocd-redis-ha-announce-2:6379 check inter 3s fall 1 rise 1
  2389    haproxy_init.sh: |
  2390      HAPROXY_CONF=/data/haproxy.cfg
  2391      cp /readonly/haproxy.cfg "$HAPROXY_CONF"
  2392      for loop in $(seq 1 10); do
  2393        getent hosts argocd-redis-ha-announce-0 && break
  2394        echo "Waiting for service argocd-redis-ha-announce-0 to be ready ($loop) ..." && sleep 1
  2395      done
  2396      ANNOUNCE_IP0=$(getent hosts "argocd-redis-ha-announce-0" | awk '{ print $1 }')
  2397      if [ -z "$ANNOUNCE_IP0" ]; then
  2398        echo "Could not resolve the announce ip for argocd-redis-ha-announce-0"
  2399        exit 1
  2400      fi
  2401      sed -i "s/REPLACE_ANNOUNCE0/$ANNOUNCE_IP0/" "$HAPROXY_CONF"
  2402  
  2403      if [ "${AUTH:-}" ]; then
  2404          echo "Setting auth values"
  2405          ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g');
  2406          sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF"
  2407      fi
  2408      for loop in $(seq 1 10); do
  2409        getent hosts argocd-redis-ha-announce-1 && break
  2410        echo "Waiting for service argocd-redis-ha-announce-1 to be ready ($loop) ..." && sleep 1
  2411      done
  2412      ANNOUNCE_IP1=$(getent hosts "argocd-redis-ha-announce-1" | awk '{ print $1 }')
  2413      if [ -z "$ANNOUNCE_IP1" ]; then
  2414        echo "Could not resolve the announce ip for argocd-redis-ha-announce-1"
  2415        exit 1
  2416      fi
  2417      sed -i "s/REPLACE_ANNOUNCE1/$ANNOUNCE_IP1/" "$HAPROXY_CONF"
  2418  
  2419      if [ "${AUTH:-}" ]; then
  2420          echo "Setting auth values"
  2421          ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g');
  2422          sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF"
  2423      fi
  2424      for loop in $(seq 1 10); do
  2425        getent hosts argocd-redis-ha-announce-2 && break
  2426        echo "Waiting for service argocd-redis-ha-announce-2 to be ready ($loop) ..." && sleep 1
  2427      done
  2428      ANNOUNCE_IP2=$(getent hosts "argocd-redis-ha-announce-2" | awk '{ print $1 }')
  2429      if [ -z "$ANNOUNCE_IP2" ]; then
  2430        echo "Could not resolve the announce ip for argocd-redis-ha-announce-2"
  2431        exit 1
  2432      fi
  2433      sed -i "s/REPLACE_ANNOUNCE2/$ANNOUNCE_IP2/" "$HAPROXY_CONF"
  2434  
  2435      if [ "${AUTH:-}" ]; then
  2436          echo "Setting auth values"
  2437          ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g');
  2438          sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF"
  2439      fi
  2440    init.sh: |
  2441      HOSTNAME="$(hostname)"
  2442      INDEX="${HOSTNAME##*-}"
  2443      MASTER="$(redis-cli -h argocd-redis-ha -p 26379 sentinel get-master-addr-by-name argocd | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')"
  2444      MASTER_GROUP="argocd"
  2445      QUORUM="2"
  2446      REDIS_CONF=/data/conf/redis.conf
  2447      REDIS_PORT=6379
  2448      SENTINEL_CONF=/data/conf/sentinel.conf
  2449      SENTINEL_PORT=26379
  2450      SERVICE=argocd-redis-ha
  2451      set -eu
  2452  
  2453      sentinel_update() {
  2454          echo "Updating sentinel config with master $MASTER"
  2455          eval MY_SENTINEL_ID="\${SENTINEL_ID_$INDEX}"
  2456          sed -i "1s/^/sentinel myid $MY_SENTINEL_ID\\n/" "$SENTINEL_CONF"
  2457          sed -i "2s/^/sentinel monitor $MASTER_GROUP $1 $REDIS_PORT $QUORUM \\n/" "$SENTINEL_CONF"
  2458          echo "sentinel announce-ip $ANNOUNCE_IP" >> $SENTINEL_CONF
  2459          echo "sentinel announce-port $SENTINEL_PORT" >> $SENTINEL_CONF
  2460      }
  2461  
  2462      redis_update() {
  2463          echo "Updating redis config"
  2464          echo "slaveof $1 $REDIS_PORT" >> "$REDIS_CONF"
  2465          echo "slave-announce-ip $ANNOUNCE_IP" >> $REDIS_CONF
  2466          echo "slave-announce-port $REDIS_PORT" >> $REDIS_CONF
  2467      }
  2468  
  2469      copy_config() {
  2470          cp /readonly-config/redis.conf "$REDIS_CONF"
  2471          cp /readonly-config/sentinel.conf "$SENTINEL_CONF"
  2472      }
  2473  
  2474      setup_defaults() {
  2475          echo "Setting up defaults"
  2476          if [ "$INDEX" = "0" ]; then
  2477              echo "Setting this pod as the default master"
  2478              redis_update "$ANNOUNCE_IP"
  2479              sentinel_update "$ANNOUNCE_IP"
  2480              sed -i "s/^.*slaveof.*//" "$REDIS_CONF"
  2481          else
  2482              DEFAULT_MASTER="$(getent hosts "$SERVICE-announce-0" | awk '{ print $1 }')"
  2483              if [ -z "$DEFAULT_MASTER" ]; then
  2484                  echo "Unable to resolve host"
  2485                  exit 1
  2486              fi
  2487              echo "Setting default slave config.."
  2488              redis_update "$DEFAULT_MASTER"
  2489              sentinel_update "$DEFAULT_MASTER"
  2490          fi
  2491      }
  2492  
  2493      find_master() {
  2494          echo "Attempting to find master"
  2495          if [ "$(redis-cli -h "$MASTER" ping)" != "PONG" ]; then
  2496             echo "Can't ping master, attempting to force failover"
  2497             if redis-cli -h "$SERVICE" -p "$SENTINEL_PORT" sentinel failover "$MASTER_GROUP" | grep -q 'NOGOODSLAVE' ; then
  2498                 setup_defaults
  2499                 return 0
  2500             fi
  2501             sleep 10
  2502             MASTER="$(redis-cli -h $SERVICE -p $SENTINEL_PORT sentinel get-master-addr-by-name $MASTER_GROUP | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')"
  2503             if [ "$MASTER" ]; then
  2504                 sentinel_update "$MASTER"
  2505                 redis_update "$MASTER"
  2506             else
  2507                echo "Could not failover, exiting..."
  2508                exit 1
  2509             fi
  2510          else
  2511              echo "Found reachable master, updating config"
  2512              sentinel_update "$MASTER"
  2513              redis_update "$MASTER"
  2514          fi
  2515      }
  2516  
  2517      mkdir -p /data/conf/
  2518  
  2519      echo "Initializing config.."
  2520      copy_config
  2521  
  2522      ANNOUNCE_IP=$(getent hosts "$SERVICE-announce-$INDEX" | awk '{ print $1 }')
  2523      if [ -z "$ANNOUNCE_IP" ]; then
  2524          "Could not resolve the announce ip for this pod"
  2525          exit 1
  2526      elif [ "$MASTER" ]; then
  2527          find_master
  2528      else
  2529          setup_defaults
  2530      fi
  2531  
  2532      if [ "${AUTH:-}" ]; then
  2533          echo "Setting auth values"
  2534          ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g');
  2535          sed -i "s/replace-default-auth/${ESCAPED_AUTH}/" "$REDIS_CONF" "$SENTINEL_CONF"
  2536      fi
  2537  
  2538      echo "Ready..."
  2539    redis.conf: |
  2540      dir "/data"
  2541      port 6379
  2542      maxmemory 0
  2543      maxmemory-policy volatile-lru
  2544      min-replicas-max-lag 5
  2545      min-replicas-to-write 1
  2546      rdbchecksum yes
  2547      rdbcompression yes
  2548      repl-diskless-sync yes
  2549      save ""
  2550    sentinel.conf: |
  2551      dir "/data"
  2552          sentinel down-after-milliseconds argocd 10000
  2553          sentinel failover-timeout argocd 180000
  2554          maxclients 10000
  2555          sentinel parallel-syncs argocd 5
  2556  kind: ConfigMap
  2557  metadata:
  2558    labels:
  2559      app.kubernetes.io/component: redis
  2560      app.kubernetes.io/name: argocd-redis-ha
  2561      app.kubernetes.io/part-of: argocd
  2562    name: argocd-redis-ha-configmap
  2563  ---
  2564  apiVersion: v1
  2565  data:
  2566    ssh_known_hosts: |
  2567      bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==
  2568      github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
  2569      gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=
  2570      gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
  2571      gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
  2572      ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
  2573      vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
  2574  kind: ConfigMap
  2575  metadata:
  2576    labels:
  2577      app.kubernetes.io/name: argocd-ssh-known-hosts-cm
  2578      app.kubernetes.io/part-of: argocd
  2579    name: argocd-ssh-known-hosts-cm
  2580  ---
  2581  apiVersion: v1
  2582  data: null
  2583  kind: ConfigMap
  2584  metadata:
  2585    labels:
  2586      app.kubernetes.io/name: argocd-tls-certs-cm
  2587      app.kubernetes.io/part-of: argocd
  2588    name: argocd-tls-certs-cm
  2589  ---
  2590  apiVersion: v1
  2591  kind: Secret
  2592  metadata:
  2593    labels:
  2594      app.kubernetes.io/name: argocd-secret
  2595      app.kubernetes.io/part-of: argocd
  2596    name: argocd-secret
  2597  type: Opaque
  2598  ---
  2599  apiVersion: v1
  2600  kind: Service
  2601  metadata:
  2602    labels:
  2603      app.kubernetes.io/component: dex-server
  2604      app.kubernetes.io/name: argocd-dex-server
  2605      app.kubernetes.io/part-of: argocd
  2606    name: argocd-dex-server
  2607  spec:
  2608    ports:
  2609    - name: http
  2610      port: 5556
  2611      protocol: TCP
  2612      targetPort: 5556
  2613    - name: grpc
  2614      port: 5557
  2615      protocol: TCP
  2616      targetPort: 5557
  2617    - name: metrics
  2618      port: 5558
  2619      protocol: TCP
  2620      targetPort: 5558
  2621    selector:
  2622      app.kubernetes.io/name: argocd-dex-server
  2623  ---
  2624  apiVersion: v1
  2625  kind: Service
  2626  metadata:
  2627    labels:
  2628      app.kubernetes.io/component: metrics
  2629      app.kubernetes.io/name: argocd-metrics
  2630      app.kubernetes.io/part-of: argocd
  2631    name: argocd-metrics
  2632  spec:
  2633    ports:
  2634    - name: metrics
  2635      port: 8082
  2636      protocol: TCP
  2637      targetPort: 8082
  2638    selector:
  2639      app.kubernetes.io/name: argocd-application-controller
  2640  ---
  2641  apiVersion: v1
  2642  kind: Service
  2643  metadata:
  2644    annotations: null
  2645    labels:
  2646      app.kubernetes.io/component: redis
  2647      app.kubernetes.io/name: argocd-redis-ha
  2648      app.kubernetes.io/part-of: argocd
  2649    name: argocd-redis-ha
  2650  spec:
  2651    clusterIP: None
  2652    ports:
  2653    - name: server
  2654      port: 6379
  2655      protocol: TCP
  2656      targetPort: redis
  2657    - name: sentinel
  2658      port: 26379
  2659      protocol: TCP
  2660      targetPort: sentinel
  2661    selector:
  2662      app.kubernetes.io/name: argocd-redis-ha
  2663    type: ClusterIP
  2664  ---
  2665  apiVersion: v1
  2666  kind: Service
  2667  metadata:
  2668    annotations:
  2669      service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  2670    labels:
  2671      app.kubernetes.io/component: redis
  2672      app.kubernetes.io/name: argocd-redis-ha
  2673      app.kubernetes.io/part-of: argocd
  2674    name: argocd-redis-ha-announce-0
  2675  spec:
  2676    ports:
  2677    - name: server
  2678      port: 6379
  2679      protocol: TCP
  2680      targetPort: redis
  2681    - name: sentinel
  2682      port: 26379
  2683      protocol: TCP
  2684      targetPort: sentinel
  2685    publishNotReadyAddresses: true
  2686    selector:
  2687      app.kubernetes.io/name: argocd-redis-ha
  2688      statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-0
  2689    type: ClusterIP
  2690  ---
  2691  apiVersion: v1
  2692  kind: Service
  2693  metadata:
  2694    annotations:
  2695      service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  2696    labels:
  2697      app.kubernetes.io/component: redis
  2698      app.kubernetes.io/name: argocd-redis-ha
  2699      app.kubernetes.io/part-of: argocd
  2700    name: argocd-redis-ha-announce-1
  2701  spec:
  2702    ports:
  2703    - name: server
  2704      port: 6379
  2705      protocol: TCP
  2706      targetPort: redis
  2707    - name: sentinel
  2708      port: 26379
  2709      protocol: TCP
  2710      targetPort: sentinel
  2711    publishNotReadyAddresses: true
  2712    selector:
  2713      app.kubernetes.io/name: argocd-redis-ha
  2714      statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-1
  2715    type: ClusterIP
  2716  ---
  2717  apiVersion: v1
  2718  kind: Service
  2719  metadata:
  2720    annotations:
  2721      service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
  2722    labels:
  2723      app.kubernetes.io/component: redis
  2724      app.kubernetes.io/name: argocd-redis-ha
  2725      app.kubernetes.io/part-of: argocd
  2726    name: argocd-redis-ha-announce-2
  2727  spec:
  2728    ports:
  2729    - name: server
  2730      port: 6379
  2731      protocol: TCP
  2732      targetPort: redis
  2733    - name: sentinel
  2734      port: 26379
  2735      protocol: TCP
  2736      targetPort: sentinel
  2737    publishNotReadyAddresses: true
  2738    selector:
  2739      app.kubernetes.io/name: argocd-redis-ha
  2740      statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-2
  2741    type: ClusterIP
  2742  ---
  2743  apiVersion: v1
  2744  kind: Service
  2745  metadata:
  2746    annotations: null
  2747    labels:
  2748      app.kubernetes.io/component: redis
  2749      app.kubernetes.io/name: argocd-redis-ha-haproxy
  2750      app.kubernetes.io/part-of: argocd
  2751    name: argocd-redis-ha-haproxy
  2752  spec:
  2753    ports:
  2754    - name: haproxy
  2755      port: 6379
  2756      protocol: TCP
  2757      targetPort: redis
  2758    selector:
  2759      app.kubernetes.io/name: argocd-redis-ha-haproxy
  2760    type: ClusterIP
  2761  ---
  2762  apiVersion: v1
  2763  kind: Service
  2764  metadata:
  2765    labels:
  2766      app.kubernetes.io/component: repo-server
  2767      app.kubernetes.io/name: argocd-repo-server
  2768      app.kubernetes.io/part-of: argocd
  2769    name: argocd-repo-server
  2770  spec:
  2771    ports:
  2772    - name: server
  2773      port: 8081
  2774      protocol: TCP
  2775      targetPort: 8081
  2776    - name: metrics
  2777      port: 8084
  2778      protocol: TCP
  2779      targetPort: 8084
  2780    selector:
  2781      app.kubernetes.io/name: argocd-repo-server
  2782  ---
  2783  apiVersion: v1
  2784  kind: Service
  2785  metadata:
  2786    labels:
  2787      app.kubernetes.io/component: server
  2788      app.kubernetes.io/name: argocd-server
  2789      app.kubernetes.io/part-of: argocd
  2790    name: argocd-server
  2791  spec:
  2792    ports:
  2793    - name: http
  2794      port: 80
  2795      protocol: TCP
  2796      targetPort: 8080
  2797    - name: https
  2798      port: 443
  2799      protocol: TCP
  2800      targetPort: 8080
  2801    selector:
  2802      app.kubernetes.io/name: argocd-server
  2803  ---
  2804  apiVersion: v1
  2805  kind: Service
  2806  metadata:
  2807    labels:
  2808      app.kubernetes.io/component: server
  2809      app.kubernetes.io/name: argocd-server-metrics
  2810      app.kubernetes.io/part-of: argocd
  2811    name: argocd-server-metrics
  2812  spec:
  2813    ports:
  2814    - name: metrics
  2815      port: 8083
  2816      protocol: TCP
  2817      targetPort: 8083
  2818    selector:
  2819      app.kubernetes.io/name: argocd-server
  2820  ---
  2821  apiVersion: apps/v1
  2822  kind: Deployment
  2823  metadata:
  2824    labels:
  2825      app.kubernetes.io/component: dex-server
  2826      app.kubernetes.io/name: argocd-dex-server
  2827      app.kubernetes.io/part-of: argocd
  2828    name: argocd-dex-server
  2829  spec:
  2830    selector:
  2831      matchLabels:
  2832        app.kubernetes.io/name: argocd-dex-server
  2833    template:
  2834      metadata:
  2835        labels:
  2836          app.kubernetes.io/name: argocd-dex-server
  2837      spec:
  2838        affinity:
  2839          podAntiAffinity:
  2840            preferredDuringSchedulingIgnoredDuringExecution:
  2841            - podAffinityTerm:
  2842                labelSelector:
  2843                  matchLabels:
  2844                    app.kubernetes.io/part-of: argocd
  2845                topologyKey: kubernetes.io/hostname
  2846              weight: 5
  2847        containers:
  2848        - command:
  2849          - /shared/argocd-util
  2850          - rundex
  2851          image: ghcr.io/dexidp/dex:v2.27.0
  2852          imagePullPolicy: Always
  2853          name: dex
  2854          ports:
  2855          - containerPort: 5556
  2856          - containerPort: 5557
  2857          - containerPort: 5558
  2858          volumeMounts:
  2859          - mountPath: /shared
  2860            name: static-files
  2861        initContainers:
  2862        - command:
  2863          - cp
  2864          - -n
  2865          - /usr/local/bin/argocd-util
  2866          - /shared
  2867          image: argoproj/argocd:v1.8.7
  2868          imagePullPolicy: Always
  2869          name: copyutil
  2870          volumeMounts:
  2871          - mountPath: /shared
  2872            name: static-files
  2873        serviceAccountName: argocd-dex-server
  2874        volumes:
  2875        - emptyDir: {}
  2876          name: static-files
  2877  ---
  2878  apiVersion: apps/v1
  2879  kind: Deployment
  2880  metadata:
  2881    labels:
  2882      app.kubernetes.io/component: redis
  2883      app.kubernetes.io/name: argocd-redis-ha-haproxy
  2884      app.kubernetes.io/part-of: argocd
  2885    name: argocd-redis-ha-haproxy
  2886  spec:
  2887    replicas: 3
  2888    revisionHistoryLimit: 1
  2889    selector:
  2890      matchLabels:
  2891        app.kubernetes.io/name: argocd-redis-ha-haproxy
  2892    strategy:
  2893      type: RollingUpdate
  2894    template:
  2895      metadata:
  2896        annotations:
  2897          checksum/config: 790be9eae7c7e468c497c0256949ab96cb3f14b935c6702424647c3c60fba91c
  2898        labels:
  2899          app.kubernetes.io/name: argocd-redis-ha-haproxy
  2900        name: argocd-redis-ha-haproxy
  2901      spec:
  2902        affinity:
  2903          podAntiAffinity:
  2904            preferredDuringSchedulingIgnoredDuringExecution:
  2905            - podAffinityTerm:
  2906                labelSelector:
  2907                  matchLabels:
  2908                    app.kubernetes.io/name: argocd-redis-ha-haproxy
  2909                topologyKey: failure-domain.beta.kubernetes.io/zone
  2910              weight: 100
  2911            requiredDuringSchedulingIgnoredDuringExecution:
  2912            - labelSelector:
  2913                matchLabels:
  2914                  app.kubernetes.io/name: argocd-redis-ha-haproxy
  2915              topologyKey: kubernetes.io/hostname
  2916        containers:
  2917        - image: haproxy:2.0.4
  2918          imagePullPolicy: IfNotPresent
  2919          livenessProbe:
  2920            httpGet:
  2921              path: /healthz
  2922              port: 8888
  2923            initialDelaySeconds: 5
  2924            periodSeconds: 3
  2925          name: haproxy
  2926          ports:
  2927          - containerPort: 6379
  2928            name: redis
  2929          resources: {}
  2930          volumeMounts:
  2931          - mountPath: /usr/local/etc/haproxy
  2932            name: data
  2933          - mountPath: /run/haproxy
  2934            name: shared-socket
  2935        initContainers:
  2936        - args:
  2937          - /readonly/haproxy_init.sh
  2938          command:
  2939          - sh
  2940          image: haproxy:2.0.4
  2941          imagePullPolicy: IfNotPresent
  2942          name: config-init
  2943          resources: {}
  2944          volumeMounts:
  2945          - mountPath: /readonly
  2946            name: config-volume
  2947            readOnly: true
  2948          - mountPath: /data
  2949            name: data
  2950        nodeSelector: {}
  2951        securityContext:
  2952          fsGroup: 1000
  2953          runAsNonRoot: true
  2954          runAsUser: 1000
  2955        serviceAccountName: argocd-redis-ha-haproxy
  2956        tolerations: null
  2957        volumes:
  2958        - configMap:
  2959            name: argocd-redis-ha-configmap
  2960          name: config-volume
  2961        - emptyDir: {}
  2962          name: shared-socket
  2963        - emptyDir: {}
  2964          name: data
  2965  ---
  2966  apiVersion: apps/v1
  2967  kind: Deployment
  2968  metadata:
  2969    labels:
  2970      app.kubernetes.io/component: repo-server
  2971      app.kubernetes.io/name: argocd-repo-server
  2972      app.kubernetes.io/part-of: argocd
  2973    name: argocd-repo-server
  2974  spec:
  2975    replicas: 2
  2976    selector:
  2977      matchLabels:
  2978        app.kubernetes.io/name: argocd-repo-server
  2979    template:
  2980      metadata:
  2981        labels:
  2982          app.kubernetes.io/name: argocd-repo-server
  2983      spec:
  2984        affinity:
  2985          podAntiAffinity:
  2986            preferredDuringSchedulingIgnoredDuringExecution:
  2987            - podAffinityTerm:
  2988                labelSelector:
  2989                  matchLabels:
  2990                    app.kubernetes.io/name: argocd-repo-server
  2991                topologyKey: failure-domain.beta.kubernetes.io/zone
  2992              weight: 100
  2993            requiredDuringSchedulingIgnoredDuringExecution:
  2994            - labelSelector:
  2995                matchLabels:
  2996                  app.kubernetes.io/name: argocd-repo-server
  2997              topologyKey: kubernetes.io/hostname
  2998        automountServiceAccountToken: false
  2999        containers:
  3000        - command:
  3001          - uid_entrypoint.sh
  3002          - argocd-repo-server
  3003          - --redis
  3004          - argocd-redis-ha-haproxy:6379
  3005          image: argoproj/argocd:v1.8.7
  3006          imagePullPolicy: Always
  3007          livenessProbe:
  3008            failureThreshold: 3
  3009            httpGet:
  3010              path: /healthz?full=true
  3011              port: 8084
  3012            initialDelaySeconds: 30
  3013            periodSeconds: 5
  3014          name: argocd-repo-server
  3015          ports:
  3016          - containerPort: 8081
  3017          - containerPort: 8084
  3018          readinessProbe:
  3019            httpGet:
  3020              path: /healthz
  3021              port: 8084
  3022            initialDelaySeconds: 5
  3023            periodSeconds: 10
  3024          volumeMounts:
  3025          - mountPath: /app/config/ssh
  3026            name: ssh-known-hosts
  3027          - mountPath: /app/config/tls
  3028            name: tls-certs
  3029          - mountPath: /app/config/gpg/source
  3030            name: gpg-keys
  3031          - mountPath: /app/config/gpg/keys
  3032            name: gpg-keyring
  3033        volumes:
  3034        - configMap:
  3035            name: argocd-ssh-known-hosts-cm
  3036          name: ssh-known-hosts
  3037        - configMap:
  3038            name: argocd-tls-certs-cm
  3039          name: tls-certs
  3040        - configMap:
  3041            name: argocd-gpg-keys-cm
  3042          name: gpg-keys
  3043        - name: gpg-keyring
  3044  ---
  3045  apiVersion: apps/v1
  3046  kind: Deployment
  3047  metadata:
  3048    labels:
  3049      app.kubernetes.io/component: server
  3050      app.kubernetes.io/name: argocd-server
  3051      app.kubernetes.io/part-of: argocd
  3052    name: argocd-server
  3053  spec:
  3054    replicas: 2
  3055    selector:
  3056      matchLabels:
  3057        app.kubernetes.io/name: argocd-server
  3058    template:
  3059      metadata:
  3060        labels:
  3061          app.kubernetes.io/name: argocd-server
  3062      spec:
  3063        affinity:
  3064          podAntiAffinity:
  3065            preferredDuringSchedulingIgnoredDuringExecution:
  3066            - podAffinityTerm:
  3067                labelSelector:
  3068                  matchLabels:
  3069                    app.kubernetes.io/name: argocd-server
  3070                topologyKey: failure-domain.beta.kubernetes.io/zone
  3071              weight: 100
  3072            requiredDuringSchedulingIgnoredDuringExecution:
  3073            - labelSelector:
  3074                matchLabels:
  3075                  app.kubernetes.io/name: argocd-server
  3076              topologyKey: kubernetes.io/hostname
  3077        containers:
  3078        - command:
  3079          - argocd-server
  3080          - --staticassets
  3081          - /shared/app
  3082          - --redis
  3083          - argocd-redis-ha-haproxy:6379
  3084          env:
  3085          - name: ARGOCD_API_SERVER_REPLICAS
  3086            value: "2"
  3087          image: argoproj/argocd:v1.8.7
  3088          imagePullPolicy: Always
  3089          livenessProbe:
  3090            httpGet:
  3091              path: /healthz?full=true
  3092              port: 8080
  3093            initialDelaySeconds: 3
  3094            periodSeconds: 30
  3095          name: argocd-server
  3096          ports:
  3097          - containerPort: 8080
  3098          - containerPort: 8083
  3099          readinessProbe:
  3100            httpGet:
  3101              path: /healthz
  3102              port: 8080
  3103            initialDelaySeconds: 3
  3104            periodSeconds: 30
  3105          volumeMounts:
  3106          - mountPath: /app/config/ssh
  3107            name: ssh-known-hosts
  3108          - mountPath: /app/config/tls
  3109            name: tls-certs
  3110        serviceAccountName: argocd-server
  3111        volumes:
  3112        - name: static-files
  3113        - configMap:
  3114            name: argocd-ssh-known-hosts-cm
  3115          name: ssh-known-hosts
  3116        - configMap:
  3117            name: argocd-tls-certs-cm
  3118          name: tls-certs
  3119  ---
  3120  apiVersion: apps/v1
  3121  kind: StatefulSet
  3122  metadata:
  3123    labels:
  3124      app.kubernetes.io/component: application-controller
  3125      app.kubernetes.io/name: argocd-application-controller
  3126      app.kubernetes.io/part-of: argocd
  3127    name: argocd-application-controller
  3128  spec:
  3129    replicas: 1
  3130    selector:
  3131      matchLabels:
  3132        app.kubernetes.io/name: argocd-application-controller
  3133    serviceName: argocd-application-controller
  3134    template:
  3135      metadata:
  3136        labels:
  3137          app.kubernetes.io/name: argocd-application-controller
  3138      spec:
  3139        affinity:
  3140          podAntiAffinity:
  3141            preferredDuringSchedulingIgnoredDuringExecution:
  3142            - podAffinityTerm:
  3143                labelSelector:
  3144                  matchLabels:
  3145                    app.kubernetes.io/name: argocd-application-controller
  3146                topologyKey: kubernetes.io/hostname
  3147              weight: 100
  3148            - podAffinityTerm:
  3149                labelSelector:
  3150                  matchLabels:
  3151                    app.kubernetes.io/part-of: argocd
  3152                topologyKey: kubernetes.io/hostname
  3153              weight: 5
  3154        containers:
  3155        - command:
  3156          - argocd-application-controller
  3157          - --status-processors
  3158          - "20"
  3159          - --operation-processors
  3160          - "10"
  3161          - --redis
  3162          - argocd-redis-ha-haproxy:6379
  3163          image: argoproj/argocd:v1.8.7
  3164          imagePullPolicy: Always
  3165          livenessProbe:
  3166            httpGet:
  3167              path: /healthz
  3168              port: 8082
  3169            initialDelaySeconds: 5
  3170            periodSeconds: 10
  3171          name: argocd-application-controller
  3172          ports:
  3173          - containerPort: 8082
  3174          readinessProbe:
  3175            httpGet:
  3176              path: /healthz
  3177              port: 8082
  3178            initialDelaySeconds: 5
  3179            periodSeconds: 10
  3180        serviceAccountName: argocd-application-controller
  3181  ---
  3182  apiVersion: apps/v1
  3183  kind: StatefulSet
  3184  metadata:
  3185    labels:
  3186      app.kubernetes.io/component: redis
  3187      app.kubernetes.io/name: argocd-redis-ha
  3188      app.kubernetes.io/part-of: argocd
  3189    name: argocd-redis-ha-server
  3190  spec:
  3191    podManagementPolicy: OrderedReady
  3192    replicas: 3
  3193    selector:
  3194      matchLabels:
  3195        app.kubernetes.io/name: argocd-redis-ha
  3196    serviceName: argocd-redis-ha
  3197    template:
  3198      metadata:
  3199        annotations:
  3200          checksum/init-config: 552ee3bec8fe5d9d865e371f7b615c6d472253649eb65d53ed4ae874f782647c
  3201        labels:
  3202          app.kubernetes.io/name: argocd-redis-ha
  3203      spec:
  3204        affinity:
  3205          podAntiAffinity:
  3206            preferredDuringSchedulingIgnoredDuringExecution:
  3207            - podAffinityTerm:
  3208                labelSelector:
  3209                  matchLabels:
  3210                    app.kubernetes.io/name: argocd-redis-ha
  3211                topologyKey: failure-domain.beta.kubernetes.io/zone
  3212              weight: 100
  3213            requiredDuringSchedulingIgnoredDuringExecution:
  3214            - labelSelector:
  3215                matchLabels:
  3216                  app.kubernetes.io/name: argocd-redis-ha
  3217              topologyKey: kubernetes.io/hostname
  3218        containers:
  3219        - args:
  3220          - /data/conf/redis.conf
  3221          command:
  3222          - redis-server
  3223          image: redis:5.0.10-alpine
  3224          imagePullPolicy: IfNotPresent
  3225          livenessProbe:
  3226            initialDelaySeconds: 15
  3227            tcpSocket:
  3228              port: 6379
  3229          name: redis
  3230          ports:
  3231          - containerPort: 6379
  3232            name: redis
  3233          resources: {}
  3234          volumeMounts:
  3235          - mountPath: /data
  3236            name: data
  3237        - args:
  3238          - /data/conf/sentinel.conf
  3239          command:
  3240          - redis-sentinel
  3241          image: redis:5.0.10-alpine
  3242          imagePullPolicy: IfNotPresent
  3243          livenessProbe:
  3244            initialDelaySeconds: 15
  3245            tcpSocket:
  3246              port: 26379
  3247          name: sentinel
  3248          ports:
  3249          - containerPort: 26379
  3250            name: sentinel
  3251          resources: {}
  3252          volumeMounts:
  3253          - mountPath: /data
  3254            name: data
  3255        initContainers:
  3256        - args:
  3257          - /readonly-config/init.sh
  3258          command:
  3259          - sh
  3260          env:
  3261          - name: SENTINEL_ID_0
  3262            value: 25b71bd9d0e4a51945d8422cab53f27027397c12
  3263          - name: SENTINEL_ID_1
  3264            value: 896627000a81c7bdad8dbdcffd39728c9c17b309
  3265          - name: SENTINEL_ID_2
  3266            value: 3acbca861108bc47379b71b1d87d1c137dce591f
  3267          image: redis:5.0.10-alpine
  3268          imagePullPolicy: IfNotPresent
  3269          name: config-init
  3270          resources: {}
  3271          volumeMounts:
  3272          - mountPath: /readonly-config
  3273            name: config
  3274            readOnly: true
  3275          - mountPath: /data
  3276            name: data
  3277        securityContext:
  3278          fsGroup: 1000
  3279          runAsNonRoot: true
  3280          runAsUser: 1000
  3281        serviceAccountName: argocd-redis-ha
  3282        volumes:
  3283        - configMap:
  3284            name: argocd-redis-ha-configmap
  3285          name: config
  3286        - emptyDir: {}
  3287          name: data
  3288    updateStrategy:
  3289      type: RollingUpdate