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