github.com/argoproj/argo-cd@v1.8.7/manifests/ha/namespace-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: RoleBinding 2121 metadata: 2122 labels: 2123 app.kubernetes.io/component: redis 2124 app.kubernetes.io/name: argocd-redis-haproxy 2125 app.kubernetes.io/part-of: argocd 2126 name: argocd-redis-haproxy 2127 namespace: argocd 2128 roleRef: 2129 apiGroup: rbac.authorization.k8s.io 2130 kind: Role 2131 name: argocd-redis-haproxy 2132 subjects: 2133 - kind: ServiceAccount 2134 name: argocd-redis-haproxy 2135 --- 2136 apiVersion: rbac.authorization.k8s.io/v1 2137 kind: RoleBinding 2138 metadata: 2139 labels: 2140 app.kubernetes.io/component: application-controller 2141 app.kubernetes.io/name: argocd-application-controller 2142 app.kubernetes.io/part-of: argocd 2143 name: argocd-application-controller 2144 roleRef: 2145 apiGroup: rbac.authorization.k8s.io 2146 kind: Role 2147 name: argocd-application-controller 2148 subjects: 2149 - kind: ServiceAccount 2150 name: argocd-application-controller 2151 --- 2152 apiVersion: rbac.authorization.k8s.io/v1 2153 kind: RoleBinding 2154 metadata: 2155 labels: 2156 app.kubernetes.io/component: dex-server 2157 app.kubernetes.io/name: argocd-dex-server 2158 app.kubernetes.io/part-of: argocd 2159 name: argocd-dex-server 2160 roleRef: 2161 apiGroup: rbac.authorization.k8s.io 2162 kind: Role 2163 name: argocd-dex-server 2164 subjects: 2165 - kind: ServiceAccount 2166 name: argocd-dex-server 2167 --- 2168 apiVersion: rbac.authorization.k8s.io/v1 2169 kind: RoleBinding 2170 metadata: 2171 labels: 2172 app.kubernetes.io/component: redis 2173 app.kubernetes.io/name: argocd-redis-ha 2174 app.kubernetes.io/part-of: argocd 2175 name: argocd-redis-ha 2176 roleRef: 2177 apiGroup: rbac.authorization.k8s.io 2178 kind: Role 2179 name: argocd-redis-ha 2180 subjects: 2181 - kind: ServiceAccount 2182 name: argocd-redis-ha 2183 --- 2184 apiVersion: rbac.authorization.k8s.io/v1 2185 kind: RoleBinding 2186 metadata: 2187 labels: 2188 app.kubernetes.io/component: server 2189 app.kubernetes.io/name: argocd-server 2190 app.kubernetes.io/part-of: argocd 2191 name: argocd-server 2192 roleRef: 2193 apiGroup: rbac.authorization.k8s.io 2194 kind: Role 2195 name: argocd-server 2196 subjects: 2197 - kind: ServiceAccount 2198 name: argocd-server 2199 --- 2200 apiVersion: v1 2201 kind: ConfigMap 2202 metadata: 2203 labels: 2204 app.kubernetes.io/name: argocd-cm 2205 app.kubernetes.io/part-of: argocd 2206 name: argocd-cm 2207 --- 2208 apiVersion: v1 2209 kind: ConfigMap 2210 metadata: 2211 labels: 2212 app.kubernetes.io/name: argocd-gpg-keys-cm 2213 app.kubernetes.io/part-of: argocd 2214 name: argocd-gpg-keys-cm 2215 --- 2216 apiVersion: v1 2217 kind: ConfigMap 2218 metadata: 2219 labels: 2220 app.kubernetes.io/name: argocd-rbac-cm 2221 app.kubernetes.io/part-of: argocd 2222 name: argocd-rbac-cm 2223 --- 2224 apiVersion: v1 2225 data: 2226 haproxy.cfg: |- 2227 defaults REDIS 2228 mode tcp 2229 timeout connect 4s 2230 timeout server 6m 2231 timeout client 6m 2232 timeout check 2s 2233 2234 listen health_check_http_url 2235 bind :8888 2236 mode http 2237 monitor-uri /healthz 2238 option dontlognull 2239 # Check Sentinel and whether they are nominated master 2240 backend check_if_redis_is_master_0 2241 mode tcp 2242 option tcp-check 2243 tcp-check connect 2244 tcp-check send PING\r\n 2245 tcp-check expect string +PONG 2246 tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n 2247 tcp-check expect string REPLACE_ANNOUNCE0 2248 tcp-check send QUIT\r\n 2249 tcp-check expect string +OK 2250 server R0 argocd-redis-ha-announce-0:26379 check inter 3s 2251 server R1 argocd-redis-ha-announce-1:26379 check inter 3s 2252 server R2 argocd-redis-ha-announce-2:26379 check inter 3s 2253 # Check Sentinel and whether they are nominated master 2254 backend check_if_redis_is_master_1 2255 mode tcp 2256 option tcp-check 2257 tcp-check connect 2258 tcp-check send PING\r\n 2259 tcp-check expect string +PONG 2260 tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n 2261 tcp-check expect string REPLACE_ANNOUNCE1 2262 tcp-check send QUIT\r\n 2263 tcp-check expect string +OK 2264 server R0 argocd-redis-ha-announce-0:26379 check inter 3s 2265 server R1 argocd-redis-ha-announce-1:26379 check inter 3s 2266 server R2 argocd-redis-ha-announce-2:26379 check inter 3s 2267 # Check Sentinel and whether they are nominated master 2268 backend check_if_redis_is_master_2 2269 mode tcp 2270 option tcp-check 2271 tcp-check connect 2272 tcp-check send PING\r\n 2273 tcp-check expect string +PONG 2274 tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n 2275 tcp-check expect string REPLACE_ANNOUNCE2 2276 tcp-check send QUIT\r\n 2277 tcp-check expect string +OK 2278 server R0 argocd-redis-ha-announce-0:26379 check inter 3s 2279 server R1 argocd-redis-ha-announce-1:26379 check inter 3s 2280 server R2 argocd-redis-ha-announce-2:26379 check inter 3s 2281 2282 # decide redis backend to use 2283 #master 2284 frontend ft_redis_master 2285 bind *:6379 2286 use_backend bk_redis_master 2287 # Check all redis servers to see if they think they are master 2288 backend bk_redis_master 2289 mode tcp 2290 option tcp-check 2291 tcp-check connect 2292 tcp-check send PING\r\n 2293 tcp-check expect string +PONG 2294 tcp-check send info\ replication\r\n 2295 tcp-check expect string role:master 2296 tcp-check send QUIT\r\n 2297 tcp-check expect string +OK 2298 use-server R0 if { srv_is_up(R0) } { nbsrv(check_if_redis_is_master_0) ge 2 } 2299 server R0 argocd-redis-ha-announce-0:6379 check inter 3s fall 1 rise 1 2300 use-server R1 if { srv_is_up(R1) } { nbsrv(check_if_redis_is_master_1) ge 2 } 2301 server R1 argocd-redis-ha-announce-1:6379 check inter 3s fall 1 rise 1 2302 use-server R2 if { srv_is_up(R2) } { nbsrv(check_if_redis_is_master_2) ge 2 } 2303 server R2 argocd-redis-ha-announce-2:6379 check inter 3s fall 1 rise 1 2304 haproxy_init.sh: | 2305 HAPROXY_CONF=/data/haproxy.cfg 2306 cp /readonly/haproxy.cfg "$HAPROXY_CONF" 2307 for loop in $(seq 1 10); do 2308 getent hosts argocd-redis-ha-announce-0 && break 2309 echo "Waiting for service argocd-redis-ha-announce-0 to be ready ($loop) ..." && sleep 1 2310 done 2311 ANNOUNCE_IP0=$(getent hosts "argocd-redis-ha-announce-0" | awk '{ print $1 }') 2312 if [ -z "$ANNOUNCE_IP0" ]; then 2313 echo "Could not resolve the announce ip for argocd-redis-ha-announce-0" 2314 exit 1 2315 fi 2316 sed -i "s/REPLACE_ANNOUNCE0/$ANNOUNCE_IP0/" "$HAPROXY_CONF" 2317 2318 if [ "${AUTH:-}" ]; then 2319 echo "Setting auth values" 2320 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 2321 sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF" 2322 fi 2323 for loop in $(seq 1 10); do 2324 getent hosts argocd-redis-ha-announce-1 && break 2325 echo "Waiting for service argocd-redis-ha-announce-1 to be ready ($loop) ..." && sleep 1 2326 done 2327 ANNOUNCE_IP1=$(getent hosts "argocd-redis-ha-announce-1" | awk '{ print $1 }') 2328 if [ -z "$ANNOUNCE_IP1" ]; then 2329 echo "Could not resolve the announce ip for argocd-redis-ha-announce-1" 2330 exit 1 2331 fi 2332 sed -i "s/REPLACE_ANNOUNCE1/$ANNOUNCE_IP1/" "$HAPROXY_CONF" 2333 2334 if [ "${AUTH:-}" ]; then 2335 echo "Setting auth values" 2336 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 2337 sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF" 2338 fi 2339 for loop in $(seq 1 10); do 2340 getent hosts argocd-redis-ha-announce-2 && break 2341 echo "Waiting for service argocd-redis-ha-announce-2 to be ready ($loop) ..." && sleep 1 2342 done 2343 ANNOUNCE_IP2=$(getent hosts "argocd-redis-ha-announce-2" | awk '{ print $1 }') 2344 if [ -z "$ANNOUNCE_IP2" ]; then 2345 echo "Could not resolve the announce ip for argocd-redis-ha-announce-2" 2346 exit 1 2347 fi 2348 sed -i "s/REPLACE_ANNOUNCE2/$ANNOUNCE_IP2/" "$HAPROXY_CONF" 2349 2350 if [ "${AUTH:-}" ]; then 2351 echo "Setting auth values" 2352 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 2353 sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF" 2354 fi 2355 init.sh: | 2356 HOSTNAME="$(hostname)" 2357 INDEX="${HOSTNAME##*-}" 2358 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}')" 2359 MASTER_GROUP="argocd" 2360 QUORUM="2" 2361 REDIS_CONF=/data/conf/redis.conf 2362 REDIS_PORT=6379 2363 SENTINEL_CONF=/data/conf/sentinel.conf 2364 SENTINEL_PORT=26379 2365 SERVICE=argocd-redis-ha 2366 set -eu 2367 2368 sentinel_update() { 2369 echo "Updating sentinel config with master $MASTER" 2370 eval MY_SENTINEL_ID="\${SENTINEL_ID_$INDEX}" 2371 sed -i "1s/^/sentinel myid $MY_SENTINEL_ID\\n/" "$SENTINEL_CONF" 2372 sed -i "2s/^/sentinel monitor $MASTER_GROUP $1 $REDIS_PORT $QUORUM \\n/" "$SENTINEL_CONF" 2373 echo "sentinel announce-ip $ANNOUNCE_IP" >> $SENTINEL_CONF 2374 echo "sentinel announce-port $SENTINEL_PORT" >> $SENTINEL_CONF 2375 } 2376 2377 redis_update() { 2378 echo "Updating redis config" 2379 echo "slaveof $1 $REDIS_PORT" >> "$REDIS_CONF" 2380 echo "slave-announce-ip $ANNOUNCE_IP" >> $REDIS_CONF 2381 echo "slave-announce-port $REDIS_PORT" >> $REDIS_CONF 2382 } 2383 2384 copy_config() { 2385 cp /readonly-config/redis.conf "$REDIS_CONF" 2386 cp /readonly-config/sentinel.conf "$SENTINEL_CONF" 2387 } 2388 2389 setup_defaults() { 2390 echo "Setting up defaults" 2391 if [ "$INDEX" = "0" ]; then 2392 echo "Setting this pod as the default master" 2393 redis_update "$ANNOUNCE_IP" 2394 sentinel_update "$ANNOUNCE_IP" 2395 sed -i "s/^.*slaveof.*//" "$REDIS_CONF" 2396 else 2397 DEFAULT_MASTER="$(getent hosts "$SERVICE-announce-0" | awk '{ print $1 }')" 2398 if [ -z "$DEFAULT_MASTER" ]; then 2399 echo "Unable to resolve host" 2400 exit 1 2401 fi 2402 echo "Setting default slave config.." 2403 redis_update "$DEFAULT_MASTER" 2404 sentinel_update "$DEFAULT_MASTER" 2405 fi 2406 } 2407 2408 find_master() { 2409 echo "Attempting to find master" 2410 if [ "$(redis-cli -h "$MASTER" ping)" != "PONG" ]; then 2411 echo "Can't ping master, attempting to force failover" 2412 if redis-cli -h "$SERVICE" -p "$SENTINEL_PORT" sentinel failover "$MASTER_GROUP" | grep -q 'NOGOODSLAVE' ; then 2413 setup_defaults 2414 return 0 2415 fi 2416 sleep 10 2417 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}')" 2418 if [ "$MASTER" ]; then 2419 sentinel_update "$MASTER" 2420 redis_update "$MASTER" 2421 else 2422 echo "Could not failover, exiting..." 2423 exit 1 2424 fi 2425 else 2426 echo "Found reachable master, updating config" 2427 sentinel_update "$MASTER" 2428 redis_update "$MASTER" 2429 fi 2430 } 2431 2432 mkdir -p /data/conf/ 2433 2434 echo "Initializing config.." 2435 copy_config 2436 2437 ANNOUNCE_IP=$(getent hosts "$SERVICE-announce-$INDEX" | awk '{ print $1 }') 2438 if [ -z "$ANNOUNCE_IP" ]; then 2439 "Could not resolve the announce ip for this pod" 2440 exit 1 2441 elif [ "$MASTER" ]; then 2442 find_master 2443 else 2444 setup_defaults 2445 fi 2446 2447 if [ "${AUTH:-}" ]; then 2448 echo "Setting auth values" 2449 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 2450 sed -i "s/replace-default-auth/${ESCAPED_AUTH}/" "$REDIS_CONF" "$SENTINEL_CONF" 2451 fi 2452 2453 echo "Ready..." 2454 redis.conf: | 2455 dir "/data" 2456 port 6379 2457 maxmemory 0 2458 maxmemory-policy volatile-lru 2459 min-replicas-max-lag 5 2460 min-replicas-to-write 1 2461 rdbchecksum yes 2462 rdbcompression yes 2463 repl-diskless-sync yes 2464 save "" 2465 sentinel.conf: | 2466 dir "/data" 2467 sentinel down-after-milliseconds argocd 10000 2468 sentinel failover-timeout argocd 180000 2469 maxclients 10000 2470 sentinel parallel-syncs argocd 5 2471 kind: ConfigMap 2472 metadata: 2473 labels: 2474 app.kubernetes.io/component: redis 2475 app.kubernetes.io/name: argocd-redis-ha 2476 app.kubernetes.io/part-of: argocd 2477 name: argocd-redis-ha-configmap 2478 --- 2479 apiVersion: v1 2480 data: 2481 ssh_known_hosts: | 2482 bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw== 2483 github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ== 2484 gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY= 2485 gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf 2486 gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9 2487 ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H 2488 vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H 2489 kind: ConfigMap 2490 metadata: 2491 labels: 2492 app.kubernetes.io/name: argocd-ssh-known-hosts-cm 2493 app.kubernetes.io/part-of: argocd 2494 name: argocd-ssh-known-hosts-cm 2495 --- 2496 apiVersion: v1 2497 data: null 2498 kind: ConfigMap 2499 metadata: 2500 labels: 2501 app.kubernetes.io/name: argocd-tls-certs-cm 2502 app.kubernetes.io/part-of: argocd 2503 name: argocd-tls-certs-cm 2504 --- 2505 apiVersion: v1 2506 kind: Secret 2507 metadata: 2508 labels: 2509 app.kubernetes.io/name: argocd-secret 2510 app.kubernetes.io/part-of: argocd 2511 name: argocd-secret 2512 type: Opaque 2513 --- 2514 apiVersion: v1 2515 kind: Service 2516 metadata: 2517 labels: 2518 app.kubernetes.io/component: dex-server 2519 app.kubernetes.io/name: argocd-dex-server 2520 app.kubernetes.io/part-of: argocd 2521 name: argocd-dex-server 2522 spec: 2523 ports: 2524 - name: http 2525 port: 5556 2526 protocol: TCP 2527 targetPort: 5556 2528 - name: grpc 2529 port: 5557 2530 protocol: TCP 2531 targetPort: 5557 2532 - name: metrics 2533 port: 5558 2534 protocol: TCP 2535 targetPort: 5558 2536 selector: 2537 app.kubernetes.io/name: argocd-dex-server 2538 --- 2539 apiVersion: v1 2540 kind: Service 2541 metadata: 2542 labels: 2543 app.kubernetes.io/component: metrics 2544 app.kubernetes.io/name: argocd-metrics 2545 app.kubernetes.io/part-of: argocd 2546 name: argocd-metrics 2547 spec: 2548 ports: 2549 - name: metrics 2550 port: 8082 2551 protocol: TCP 2552 targetPort: 8082 2553 selector: 2554 app.kubernetes.io/name: argocd-application-controller 2555 --- 2556 apiVersion: v1 2557 kind: Service 2558 metadata: 2559 annotations: null 2560 labels: 2561 app.kubernetes.io/component: redis 2562 app.kubernetes.io/name: argocd-redis-ha 2563 app.kubernetes.io/part-of: argocd 2564 name: argocd-redis-ha 2565 spec: 2566 clusterIP: None 2567 ports: 2568 - name: server 2569 port: 6379 2570 protocol: TCP 2571 targetPort: redis 2572 - name: sentinel 2573 port: 26379 2574 protocol: TCP 2575 targetPort: sentinel 2576 selector: 2577 app.kubernetes.io/name: argocd-redis-ha 2578 type: ClusterIP 2579 --- 2580 apiVersion: v1 2581 kind: Service 2582 metadata: 2583 annotations: 2584 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 2585 labels: 2586 app.kubernetes.io/component: redis 2587 app.kubernetes.io/name: argocd-redis-ha 2588 app.kubernetes.io/part-of: argocd 2589 name: argocd-redis-ha-announce-0 2590 spec: 2591 ports: 2592 - name: server 2593 port: 6379 2594 protocol: TCP 2595 targetPort: redis 2596 - name: sentinel 2597 port: 26379 2598 protocol: TCP 2599 targetPort: sentinel 2600 publishNotReadyAddresses: true 2601 selector: 2602 app.kubernetes.io/name: argocd-redis-ha 2603 statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-0 2604 type: ClusterIP 2605 --- 2606 apiVersion: v1 2607 kind: Service 2608 metadata: 2609 annotations: 2610 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 2611 labels: 2612 app.kubernetes.io/component: redis 2613 app.kubernetes.io/name: argocd-redis-ha 2614 app.kubernetes.io/part-of: argocd 2615 name: argocd-redis-ha-announce-1 2616 spec: 2617 ports: 2618 - name: server 2619 port: 6379 2620 protocol: TCP 2621 targetPort: redis 2622 - name: sentinel 2623 port: 26379 2624 protocol: TCP 2625 targetPort: sentinel 2626 publishNotReadyAddresses: true 2627 selector: 2628 app.kubernetes.io/name: argocd-redis-ha 2629 statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-1 2630 type: ClusterIP 2631 --- 2632 apiVersion: v1 2633 kind: Service 2634 metadata: 2635 annotations: 2636 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 2637 labels: 2638 app.kubernetes.io/component: redis 2639 app.kubernetes.io/name: argocd-redis-ha 2640 app.kubernetes.io/part-of: argocd 2641 name: argocd-redis-ha-announce-2 2642 spec: 2643 ports: 2644 - name: server 2645 port: 6379 2646 protocol: TCP 2647 targetPort: redis 2648 - name: sentinel 2649 port: 26379 2650 protocol: TCP 2651 targetPort: sentinel 2652 publishNotReadyAddresses: true 2653 selector: 2654 app.kubernetes.io/name: argocd-redis-ha 2655 statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-2 2656 type: ClusterIP 2657 --- 2658 apiVersion: v1 2659 kind: Service 2660 metadata: 2661 annotations: null 2662 labels: 2663 app.kubernetes.io/component: redis 2664 app.kubernetes.io/name: argocd-redis-ha-haproxy 2665 app.kubernetes.io/part-of: argocd 2666 name: argocd-redis-ha-haproxy 2667 spec: 2668 ports: 2669 - name: haproxy 2670 port: 6379 2671 protocol: TCP 2672 targetPort: redis 2673 selector: 2674 app.kubernetes.io/name: argocd-redis-ha-haproxy 2675 type: ClusterIP 2676 --- 2677 apiVersion: v1 2678 kind: Service 2679 metadata: 2680 labels: 2681 app.kubernetes.io/component: repo-server 2682 app.kubernetes.io/name: argocd-repo-server 2683 app.kubernetes.io/part-of: argocd 2684 name: argocd-repo-server 2685 spec: 2686 ports: 2687 - name: server 2688 port: 8081 2689 protocol: TCP 2690 targetPort: 8081 2691 - name: metrics 2692 port: 8084 2693 protocol: TCP 2694 targetPort: 8084 2695 selector: 2696 app.kubernetes.io/name: argocd-repo-server 2697 --- 2698 apiVersion: v1 2699 kind: Service 2700 metadata: 2701 labels: 2702 app.kubernetes.io/component: server 2703 app.kubernetes.io/name: argocd-server 2704 app.kubernetes.io/part-of: argocd 2705 name: argocd-server 2706 spec: 2707 ports: 2708 - name: http 2709 port: 80 2710 protocol: TCP 2711 targetPort: 8080 2712 - name: https 2713 port: 443 2714 protocol: TCP 2715 targetPort: 8080 2716 selector: 2717 app.kubernetes.io/name: argocd-server 2718 --- 2719 apiVersion: v1 2720 kind: Service 2721 metadata: 2722 labels: 2723 app.kubernetes.io/component: server 2724 app.kubernetes.io/name: argocd-server-metrics 2725 app.kubernetes.io/part-of: argocd 2726 name: argocd-server-metrics 2727 spec: 2728 ports: 2729 - name: metrics 2730 port: 8083 2731 protocol: TCP 2732 targetPort: 8083 2733 selector: 2734 app.kubernetes.io/name: argocd-server 2735 --- 2736 apiVersion: apps/v1 2737 kind: Deployment 2738 metadata: 2739 labels: 2740 app.kubernetes.io/component: dex-server 2741 app.kubernetes.io/name: argocd-dex-server 2742 app.kubernetes.io/part-of: argocd 2743 name: argocd-dex-server 2744 spec: 2745 selector: 2746 matchLabels: 2747 app.kubernetes.io/name: argocd-dex-server 2748 template: 2749 metadata: 2750 labels: 2751 app.kubernetes.io/name: argocd-dex-server 2752 spec: 2753 affinity: 2754 podAntiAffinity: 2755 preferredDuringSchedulingIgnoredDuringExecution: 2756 - podAffinityTerm: 2757 labelSelector: 2758 matchLabels: 2759 app.kubernetes.io/part-of: argocd 2760 topologyKey: kubernetes.io/hostname 2761 weight: 5 2762 containers: 2763 - command: 2764 - /shared/argocd-util 2765 - rundex 2766 image: ghcr.io/dexidp/dex:v2.27.0 2767 imagePullPolicy: Always 2768 name: dex 2769 ports: 2770 - containerPort: 5556 2771 - containerPort: 5557 2772 - containerPort: 5558 2773 volumeMounts: 2774 - mountPath: /shared 2775 name: static-files 2776 initContainers: 2777 - command: 2778 - cp 2779 - -n 2780 - /usr/local/bin/argocd-util 2781 - /shared 2782 image: argoproj/argocd:v1.8.7 2783 imagePullPolicy: Always 2784 name: copyutil 2785 volumeMounts: 2786 - mountPath: /shared 2787 name: static-files 2788 serviceAccountName: argocd-dex-server 2789 volumes: 2790 - emptyDir: {} 2791 name: static-files 2792 --- 2793 apiVersion: apps/v1 2794 kind: Deployment 2795 metadata: 2796 labels: 2797 app.kubernetes.io/component: redis 2798 app.kubernetes.io/name: argocd-redis-ha-haproxy 2799 app.kubernetes.io/part-of: argocd 2800 name: argocd-redis-ha-haproxy 2801 spec: 2802 replicas: 3 2803 revisionHistoryLimit: 1 2804 selector: 2805 matchLabels: 2806 app.kubernetes.io/name: argocd-redis-ha-haproxy 2807 strategy: 2808 type: RollingUpdate 2809 template: 2810 metadata: 2811 annotations: 2812 checksum/config: 790be9eae7c7e468c497c0256949ab96cb3f14b935c6702424647c3c60fba91c 2813 labels: 2814 app.kubernetes.io/name: argocd-redis-ha-haproxy 2815 name: argocd-redis-ha-haproxy 2816 spec: 2817 affinity: 2818 podAntiAffinity: 2819 preferredDuringSchedulingIgnoredDuringExecution: 2820 - podAffinityTerm: 2821 labelSelector: 2822 matchLabels: 2823 app.kubernetes.io/name: argocd-redis-ha-haproxy 2824 topologyKey: failure-domain.beta.kubernetes.io/zone 2825 weight: 100 2826 requiredDuringSchedulingIgnoredDuringExecution: 2827 - labelSelector: 2828 matchLabels: 2829 app.kubernetes.io/name: argocd-redis-ha-haproxy 2830 topologyKey: kubernetes.io/hostname 2831 containers: 2832 - image: haproxy:2.0.4 2833 imagePullPolicy: IfNotPresent 2834 livenessProbe: 2835 httpGet: 2836 path: /healthz 2837 port: 8888 2838 initialDelaySeconds: 5 2839 periodSeconds: 3 2840 name: haproxy 2841 ports: 2842 - containerPort: 6379 2843 name: redis 2844 resources: {} 2845 volumeMounts: 2846 - mountPath: /usr/local/etc/haproxy 2847 name: data 2848 - mountPath: /run/haproxy 2849 name: shared-socket 2850 initContainers: 2851 - args: 2852 - /readonly/haproxy_init.sh 2853 command: 2854 - sh 2855 image: haproxy:2.0.4 2856 imagePullPolicy: IfNotPresent 2857 name: config-init 2858 resources: {} 2859 volumeMounts: 2860 - mountPath: /readonly 2861 name: config-volume 2862 readOnly: true 2863 - mountPath: /data 2864 name: data 2865 nodeSelector: {} 2866 securityContext: 2867 fsGroup: 1000 2868 runAsNonRoot: true 2869 runAsUser: 1000 2870 serviceAccountName: argocd-redis-ha-haproxy 2871 tolerations: null 2872 volumes: 2873 - configMap: 2874 name: argocd-redis-ha-configmap 2875 name: config-volume 2876 - emptyDir: {} 2877 name: shared-socket 2878 - emptyDir: {} 2879 name: data 2880 --- 2881 apiVersion: apps/v1 2882 kind: Deployment 2883 metadata: 2884 labels: 2885 app.kubernetes.io/component: repo-server 2886 app.kubernetes.io/name: argocd-repo-server 2887 app.kubernetes.io/part-of: argocd 2888 name: argocd-repo-server 2889 spec: 2890 replicas: 2 2891 selector: 2892 matchLabels: 2893 app.kubernetes.io/name: argocd-repo-server 2894 template: 2895 metadata: 2896 labels: 2897 app.kubernetes.io/name: argocd-repo-server 2898 spec: 2899 affinity: 2900 podAntiAffinity: 2901 preferredDuringSchedulingIgnoredDuringExecution: 2902 - podAffinityTerm: 2903 labelSelector: 2904 matchLabels: 2905 app.kubernetes.io/name: argocd-repo-server 2906 topologyKey: failure-domain.beta.kubernetes.io/zone 2907 weight: 100 2908 requiredDuringSchedulingIgnoredDuringExecution: 2909 - labelSelector: 2910 matchLabels: 2911 app.kubernetes.io/name: argocd-repo-server 2912 topologyKey: kubernetes.io/hostname 2913 automountServiceAccountToken: false 2914 containers: 2915 - command: 2916 - uid_entrypoint.sh 2917 - argocd-repo-server 2918 - --redis 2919 - argocd-redis-ha-haproxy:6379 2920 image: argoproj/argocd:v1.8.7 2921 imagePullPolicy: Always 2922 livenessProbe: 2923 failureThreshold: 3 2924 httpGet: 2925 path: /healthz?full=true 2926 port: 8084 2927 initialDelaySeconds: 30 2928 periodSeconds: 5 2929 name: argocd-repo-server 2930 ports: 2931 - containerPort: 8081 2932 - containerPort: 8084 2933 readinessProbe: 2934 httpGet: 2935 path: /healthz 2936 port: 8084 2937 initialDelaySeconds: 5 2938 periodSeconds: 10 2939 volumeMounts: 2940 - mountPath: /app/config/ssh 2941 name: ssh-known-hosts 2942 - mountPath: /app/config/tls 2943 name: tls-certs 2944 - mountPath: /app/config/gpg/source 2945 name: gpg-keys 2946 - mountPath: /app/config/gpg/keys 2947 name: gpg-keyring 2948 volumes: 2949 - configMap: 2950 name: argocd-ssh-known-hosts-cm 2951 name: ssh-known-hosts 2952 - configMap: 2953 name: argocd-tls-certs-cm 2954 name: tls-certs 2955 - configMap: 2956 name: argocd-gpg-keys-cm 2957 name: gpg-keys 2958 - name: gpg-keyring 2959 --- 2960 apiVersion: apps/v1 2961 kind: Deployment 2962 metadata: 2963 labels: 2964 app.kubernetes.io/component: server 2965 app.kubernetes.io/name: argocd-server 2966 app.kubernetes.io/part-of: argocd 2967 name: argocd-server 2968 spec: 2969 replicas: 2 2970 selector: 2971 matchLabels: 2972 app.kubernetes.io/name: argocd-server 2973 template: 2974 metadata: 2975 labels: 2976 app.kubernetes.io/name: argocd-server 2977 spec: 2978 affinity: 2979 podAntiAffinity: 2980 preferredDuringSchedulingIgnoredDuringExecution: 2981 - podAffinityTerm: 2982 labelSelector: 2983 matchLabels: 2984 app.kubernetes.io/name: argocd-server 2985 topologyKey: failure-domain.beta.kubernetes.io/zone 2986 weight: 100 2987 requiredDuringSchedulingIgnoredDuringExecution: 2988 - labelSelector: 2989 matchLabels: 2990 app.kubernetes.io/name: argocd-server 2991 topologyKey: kubernetes.io/hostname 2992 containers: 2993 - command: 2994 - argocd-server 2995 - --staticassets 2996 - /shared/app 2997 - --redis 2998 - argocd-redis-ha-haproxy:6379 2999 env: 3000 - name: ARGOCD_API_SERVER_REPLICAS 3001 value: "2" 3002 image: argoproj/argocd:v1.8.7 3003 imagePullPolicy: Always 3004 livenessProbe: 3005 httpGet: 3006 path: /healthz?full=true 3007 port: 8080 3008 initialDelaySeconds: 3 3009 periodSeconds: 30 3010 name: argocd-server 3011 ports: 3012 - containerPort: 8080 3013 - containerPort: 8083 3014 readinessProbe: 3015 httpGet: 3016 path: /healthz 3017 port: 8080 3018 initialDelaySeconds: 3 3019 periodSeconds: 30 3020 volumeMounts: 3021 - mountPath: /app/config/ssh 3022 name: ssh-known-hosts 3023 - mountPath: /app/config/tls 3024 name: tls-certs 3025 serviceAccountName: argocd-server 3026 volumes: 3027 - name: static-files 3028 - configMap: 3029 name: argocd-ssh-known-hosts-cm 3030 name: ssh-known-hosts 3031 - configMap: 3032 name: argocd-tls-certs-cm 3033 name: tls-certs 3034 --- 3035 apiVersion: apps/v1 3036 kind: StatefulSet 3037 metadata: 3038 labels: 3039 app.kubernetes.io/component: application-controller 3040 app.kubernetes.io/name: argocd-application-controller 3041 app.kubernetes.io/part-of: argocd 3042 name: argocd-application-controller 3043 spec: 3044 replicas: 1 3045 selector: 3046 matchLabels: 3047 app.kubernetes.io/name: argocd-application-controller 3048 serviceName: argocd-application-controller 3049 template: 3050 metadata: 3051 labels: 3052 app.kubernetes.io/name: argocd-application-controller 3053 spec: 3054 affinity: 3055 podAntiAffinity: 3056 preferredDuringSchedulingIgnoredDuringExecution: 3057 - podAffinityTerm: 3058 labelSelector: 3059 matchLabels: 3060 app.kubernetes.io/name: argocd-application-controller 3061 topologyKey: kubernetes.io/hostname 3062 weight: 100 3063 - podAffinityTerm: 3064 labelSelector: 3065 matchLabels: 3066 app.kubernetes.io/part-of: argocd 3067 topologyKey: kubernetes.io/hostname 3068 weight: 5 3069 containers: 3070 - command: 3071 - argocd-application-controller 3072 - --status-processors 3073 - "20" 3074 - --operation-processors 3075 - "10" 3076 - --redis 3077 - argocd-redis-ha-haproxy:6379 3078 image: argoproj/argocd:v1.8.7 3079 imagePullPolicy: Always 3080 livenessProbe: 3081 httpGet: 3082 path: /healthz 3083 port: 8082 3084 initialDelaySeconds: 5 3085 periodSeconds: 10 3086 name: argocd-application-controller 3087 ports: 3088 - containerPort: 8082 3089 readinessProbe: 3090 httpGet: 3091 path: /healthz 3092 port: 8082 3093 initialDelaySeconds: 5 3094 periodSeconds: 10 3095 serviceAccountName: argocd-application-controller 3096 --- 3097 apiVersion: apps/v1 3098 kind: StatefulSet 3099 metadata: 3100 labels: 3101 app.kubernetes.io/component: redis 3102 app.kubernetes.io/name: argocd-redis-ha 3103 app.kubernetes.io/part-of: argocd 3104 name: argocd-redis-ha-server 3105 spec: 3106 podManagementPolicy: OrderedReady 3107 replicas: 3 3108 selector: 3109 matchLabels: 3110 app.kubernetes.io/name: argocd-redis-ha 3111 serviceName: argocd-redis-ha 3112 template: 3113 metadata: 3114 annotations: 3115 checksum/init-config: 552ee3bec8fe5d9d865e371f7b615c6d472253649eb65d53ed4ae874f782647c 3116 labels: 3117 app.kubernetes.io/name: argocd-redis-ha 3118 spec: 3119 affinity: 3120 podAntiAffinity: 3121 preferredDuringSchedulingIgnoredDuringExecution: 3122 - podAffinityTerm: 3123 labelSelector: 3124 matchLabels: 3125 app.kubernetes.io/name: argocd-redis-ha 3126 topologyKey: failure-domain.beta.kubernetes.io/zone 3127 weight: 100 3128 requiredDuringSchedulingIgnoredDuringExecution: 3129 - labelSelector: 3130 matchLabels: 3131 app.kubernetes.io/name: argocd-redis-ha 3132 topologyKey: kubernetes.io/hostname 3133 containers: 3134 - args: 3135 - /data/conf/redis.conf 3136 command: 3137 - redis-server 3138 image: redis:5.0.10-alpine 3139 imagePullPolicy: IfNotPresent 3140 livenessProbe: 3141 initialDelaySeconds: 15 3142 tcpSocket: 3143 port: 6379 3144 name: redis 3145 ports: 3146 - containerPort: 6379 3147 name: redis 3148 resources: {} 3149 volumeMounts: 3150 - mountPath: /data 3151 name: data 3152 - args: 3153 - /data/conf/sentinel.conf 3154 command: 3155 - redis-sentinel 3156 image: redis:5.0.10-alpine 3157 imagePullPolicy: IfNotPresent 3158 livenessProbe: 3159 initialDelaySeconds: 15 3160 tcpSocket: 3161 port: 26379 3162 name: sentinel 3163 ports: 3164 - containerPort: 26379 3165 name: sentinel 3166 resources: {} 3167 volumeMounts: 3168 - mountPath: /data 3169 name: data 3170 initContainers: 3171 - args: 3172 - /readonly-config/init.sh 3173 command: 3174 - sh 3175 env: 3176 - name: SENTINEL_ID_0 3177 value: 25b71bd9d0e4a51945d8422cab53f27027397c12 3178 - name: SENTINEL_ID_1 3179 value: 896627000a81c7bdad8dbdcffd39728c9c17b309 3180 - name: SENTINEL_ID_2 3181 value: 3acbca861108bc47379b71b1d87d1c137dce591f 3182 image: redis:5.0.10-alpine 3183 imagePullPolicy: IfNotPresent 3184 name: config-init 3185 resources: {} 3186 volumeMounts: 3187 - mountPath: /readonly-config 3188 name: config 3189 readOnly: true 3190 - mountPath: /data 3191 name: data 3192 securityContext: 3193 fsGroup: 1000 3194 runAsNonRoot: true 3195 runAsUser: 1000 3196 serviceAccountName: argocd-redis-ha 3197 volumes: 3198 - configMap: 3199 name: argocd-redis-ha-configmap 3200 name: config 3201 - emptyDir: {} 3202 name: data 3203 updateStrategy: 3204 type: RollingUpdate