Mario Vázquez
2019-08-23 203bb8fc5d7a06d1bc1ab23562dfaaa830949153
Don't use k8s module for installing argo (#648)

2 files deleted
2 files modified
4324 ■■■■ changed files
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/tasks/workload.yml 14 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/templates/argocd_crd1.j2 1426 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/templates/argocd_crd2.j2 117 ●●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/templates/argocd_install.j2 2767 ●●●● patch | view | raw | blame | history
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/tasks/workload.yml
@@ -28,11 +28,15 @@
    definition: "{{ lookup('template', item ) | from_yaml }}"
  loop:
    - ./templates/argocd_project.j2
    - ./templates/argocd_crd1.j2
    - ./templates/argocd_crd2.j2
    - ./templates/argocd_install.j2
  retries: 5
  delay: 10
- name: Ensure ArgoCD template is present
  template:
    src: ./templates/argocd_install.j2
    dest: /tmp/argocd_install.yaml
    mode: 0666
- name: Ensure ArgoCD template is instantiated
  shell: oc -n "{{ _argocd_project }}" apply -f /tmp/argocd_install.yaml
- name: Ensure argocd Tool is Downloaded
  get_url:
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/templates/argocd_crd1.j2
File was deleted
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/templates/argocd_crd2.j2
File was deleted
ansible/roles/ocp4-workload-rhte-kubefed-app-portability/templates/argocd_install.j2
@@ -1,643 +1,2164 @@
# This is an auto-generated file. DO NOT EDIT
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: applications.argoproj.io
    app.kubernetes.io/part-of: argocd
  name: applications.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: Application
    plural: applications
    shortNames:
    - app
    - apps
  scope: Namespaced
  validation:
    openAPIV3Schema:
      properties:
        apiVersion:
          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/api-conventions.md#resources'
          type: string
        kind:
          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/api-conventions.md#types-kinds'
          type: string
        metadata: {}
        operation:
          description: Operation contains requested operation parameters.
          properties:
            sync:
              description: SyncOperation contains sync operation details.
              properties:
                dryRun:
                  description: DryRun will perform a `kubectl apply --dry-run` without
                    actually performing the sync
                  type: boolean
                manifests:
                  description: Manifests is an optional field that overrides sync
                    source with a local directory for development
                  items:
                    type: string
                  type: array
                prune:
                  description: Prune deletes resources that are no longer tracked
                    in git
                  type: boolean
                resources:
                  description: Resources describes which resources to sync
                  items:
                    description: SyncOperationResource contains resources to sync.
                    properties:
                      group:
                        type: string
                      kind:
                        type: string
                      name:
                        type: string
                    required:
                    - kind
                    - name
                    type: object
                  type: array
                revision:
                  description: Revision is the git revision in which to sync the application
                    to. If omitted, will use the revision specified in app spec.
                  type: string
                source:
                  description: ApplicationSource contains information about github
                    repository, path within repository and target application environment.
                  properties:
                    directory:
                      properties:
                        jsonnet:
                          description: ApplicationSourceJsonnet holds jsonnet specific
                            options
                          properties:
                            extVars:
                              description: ExtVars is a list of Jsonnet External Variables
                              items:
                                description: JsonnetVar is a jsonnet variable
                                properties:
                                  code:
                                    type: boolean
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            tlas:
                              description: TLAS is a list of Jsonnet Top-level Arguments
                              items:
                                description: JsonnetVar is a jsonnet variable
                                properties:
                                  code:
                                    type: boolean
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                          type: object
                        recurse:
                          type: boolean
                      type: object
                    helm:
                      description: ApplicationSourceHelm holds helm specific options
                      properties:
                        parameters:
                          description: Parameters are parameters to the helm template
                          items:
                            description: HelmParameter is a parameter to a helm template
                            properties:
                              name:
                                description: Name is the name of the helm parameter
                                type: string
                              value:
                                description: Value is the value for the helm parameter
                                type: string
                            type: object
                          type: array
                        releaseName:
                          description: The Helm release name. If omitted it will use
                            the application name
                          type: string
                        valueFiles:
                          description: ValuesFiles is a list of Helm value files to
                            use when generating a template
                          items:
                            type: string
                          type: array
                      type: object
                    ksonnet:
                      description: ApplicationSourceKsonnet holds ksonnet specific
                        options
                      properties:
                        environment:
                          description: Environment is a ksonnet application environment
                            name
                          type: string
                        parameters:
                          description: Parameters are a list of ksonnet component
                            parameter override values
                          items:
                            description: KsonnetParameter is a ksonnet component parameter
                            properties:
                              component:
                                type: string
                              name:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                      type: object
                    kustomize:
                      description: ApplicationSourceKustomize holds kustomize specific
                        options
                      properties:
                        commonLabels:
                          description: CommonLabels adds additional kustomize commonLabels
                          type: object
                        imageTags:
                          description: ImageTags are kustomize 1.0 image tag overrides
                          items:
                            description: KustomizeImageTag is a kustomize image tag
                            properties:
                              name:
                                description: Name is the name of the image (e.g. nginx)
                                type: string
                              value:
                                description: Value is the value for the new tag (e.g.
                                  1.8.0)
                                type: string
                            type: object
                          type: array
                        images:
                          description: Images are kustomize 2.0 image overrides
                          items:
                            type: string
                          type: array
                        namePrefix:
                          description: NamePrefix is a prefix appended to resources
                            for kustomize apps
                          type: string
                      type: object
                    path:
                      description: Path is a directory path within the repository
                        containing a
                      type: string
                    plugin:
                      description: ApplicationSourcePlugin holds config management
                        plugin specific options
                      properties:
                        name:
                          type: string
                      type: object
                    repoURL:
                      description: RepoURL is the git repository URL of the application
                        manifests
                      type: string
                    targetRevision:
                      description: Environment is a ksonnet application environment
                        name TargetRevision defines the commit, tag, or branch in
                        which to sync the application to. If omitted, will sync to
                        HEAD
                      type: string
                  required:
                  - repoURL
                  - path
                  type: object
                syncStrategy:
                  description: SyncStrategy controls the manner in which a sync is
                    performed
                  properties:
                    apply:
                      description: SyncStrategyApply uses `kubectl apply` to perform
                        the apply
                      properties:
                        force:
                          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.
                          type: boolean
                      type: object
                    hook:
                      description: SyncStrategyHook will perform a sync using hooks
                        annotations. If no hook annotation is specified falls back
                        to `kubectl apply`.
                      properties:
                        SyncStrategyApply:
                          description: SyncStrategyApply uses `kubectl apply` to perform
                            the apply
                          properties:
                            force:
                              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.
                              type: boolean
                          type: object
                      type: object
                  type: object
              type: object
          type: object
        spec:
          description: ApplicationSpec represents desired application state. Contains
            link to repository with application definition and additional parameters
            link definition revision.
          properties:
            destination:
              description: ApplicationDestination contains deployment destination
                information
              properties:
                namespace:
                  description: Namespace overrides the environment namespace value
                    in the ksonnet app.yaml
                  type: string
                server:
                  description: Server overrides the environment server value in the
                    ksonnet app.yaml
                  type: string
              type: object
            ignoreDifferences:
              description: IgnoreDifferences controls resources fields which should
                be ignored during comparison
              items:
                description: ResourceIgnoreDifferences contains resource filter and
                  list of json paths which should be ignored during comparison with
                  live state.
                properties:
                  group:
                    type: string
                  jsonPointers:
                    items:
                      type: string
                    type: array
                  kind:
                    type: string
                  name:
                    type: string
                  namespace:
                    type: string
                required:
                - group
                - kind
                - jsonPointers
                type: object
              type: array
            info:
              description: Infos contains a list of useful information (URLs, email
                addresses, and plain text) that relates to the application
              items:
                properties:
                  name:
                    type: string
                  value:
                    type: string
                required:
                - name
                - value
                type: object
              type: array
            project:
              description: Project is a application project name. Empty name means
                that application belongs to 'default' project.
              type: string
            source:
              description: ApplicationSource contains information about github repository,
                path within repository and target application environment.
              properties:
                directory:
                  properties:
                    jsonnet:
                      description: ApplicationSourceJsonnet holds jsonnet specific
                        options
                      properties:
                        extVars:
                          description: ExtVars is a list of Jsonnet External Variables
                          items:
                            description: JsonnetVar is a jsonnet variable
                            properties:
                              code:
                                type: boolean
                              name:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                        tlas:
                          description: TLAS is a list of Jsonnet Top-level Arguments
                          items:
                            description: JsonnetVar is a jsonnet variable
                            properties:
                              code:
                                type: boolean
                              name:
                                type: string
                              value:
                                type: string
                            required:
                            - name
                            - value
                            type: object
                          type: array
                      type: object
                    recurse:
                      type: boolean
                  type: object
                helm:
                  description: ApplicationSourceHelm holds helm specific options
                  properties:
                    parameters:
                      description: Parameters are parameters to the helm template
                      items:
                        description: HelmParameter is a parameter to a helm template
                        properties:
                          name:
                            description: Name is the name of the helm parameter
                            type: string
                          value:
                            description: Value is the value for the helm parameter
                            type: string
                        type: object
                      type: array
                    releaseName:
                      description: The Helm release name. If omitted it will use the
                        application name
                      type: string
                    valueFiles:
                      description: ValuesFiles is a list of Helm value files to use
                        when generating a template
                      items:
                        type: string
                      type: array
                  type: object
                ksonnet:
                  description: ApplicationSourceKsonnet holds ksonnet specific options
                  properties:
                    environment:
                      description: Environment is a ksonnet application environment
                        name
                      type: string
                    parameters:
                      description: Parameters are a list of ksonnet component parameter
                        override values
                      items:
                        description: KsonnetParameter is a ksonnet component parameter
                        properties:
                          component:
                            type: string
                          name:
                            type: string
                          value:
                            type: string
                        required:
                        - name
                        - value
                        type: object
                      type: array
                  type: object
                kustomize:
                  description: ApplicationSourceKustomize holds kustomize specific
                    options
                  properties:
                    commonLabels:
                      description: CommonLabels adds additional kustomize commonLabels
                      type: object
                    imageTags:
                      description: ImageTags are kustomize 1.0 image tag overrides
                      items:
                        description: KustomizeImageTag is a kustomize image tag
                        properties:
                          name:
                            description: Name is the name of the image (e.g. nginx)
                            type: string
                          value:
                            description: Value is the value for the new tag (e.g.
                              1.8.0)
                            type: string
                        type: object
                      type: array
                    images:
                      description: Images are kustomize 2.0 image overrides
                      items:
                        type: string
                      type: array
                    namePrefix:
                      description: NamePrefix is a prefix appended to resources for
                        kustomize apps
                      type: string
                  type: object
                path:
                  description: Path is a directory path within the repository containing
                    a
                  type: string
                plugin:
                  description: ApplicationSourcePlugin holds config management plugin
                    specific options
                  properties:
                    name:
                      type: string
                  type: object
                repoURL:
                  description: RepoURL is the git repository URL of the application
                    manifests
                  type: string
                targetRevision:
                  description: Environment is a ksonnet application environment name
                    TargetRevision defines the commit, tag, or branch in which to
                    sync the application to. If omitted, will sync to HEAD
                  type: string
              required:
              - repoURL
              - path
              type: object
            syncPolicy:
              description: SyncPolicy controls when a sync will be performed in response
                to updates in git
              properties:
                automated:
                  description: SyncPolicyAutomated controls the behavior of an automated
                    sync
                  properties:
                    prune:
                      description: 'Prune will prune resources automatically as part
                        of automated sync (default: false)'
                      type: boolean
                  type: object
              type: object
          required:
          - source
          - destination
          - project
          type: object
        status:
          description: ApplicationStatus contains information about application sync,
            health status
          properties:
            conditions:
              items:
                description: ApplicationCondition contains details about current application
                  condition
                properties:
                  message:
                    description: Message contains human-readable message indicating
                      details about condition
                    type: string
                  type:
                    description: Type is an application condition type
                    type: string
                required:
                - type
                - message
                type: object
              type: array
            health:
              properties:
                message:
                  type: string
                status:
                  type: string
              type: object
            history:
              items:
                description: RevisionHistory contains information relevant to an application
                  deployment
                properties:
                  deployedAt: {}
                  id:
                    format: int64
                    type: integer
                  revision:
                    type: string
                  source:
                    description: ApplicationSource contains information about github
                      repository, path within repository and target application environment.
                    properties:
                      directory:
                        properties:
                          jsonnet:
                            description: ApplicationSourceJsonnet holds jsonnet specific
                              options
                            properties:
                              extVars:
                                description: ExtVars is a list of Jsonnet External
                                  Variables
                                items:
                                  description: JsonnetVar is a jsonnet variable
                                  properties:
                                    code:
                                      type: boolean
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                              tlas:
                                description: TLAS is a list of Jsonnet Top-level Arguments
                                items:
                                  description: JsonnetVar is a jsonnet variable
                                  properties:
                                    code:
                                      type: boolean
                                    name:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                  - name
                                  - value
                                  type: object
                                type: array
                            type: object
                          recurse:
                            type: boolean
                        type: object
                      helm:
                        description: ApplicationSourceHelm holds helm specific options
                        properties:
                          parameters:
                            description: Parameters are parameters to the helm template
                            items:
                              description: HelmParameter is a parameter to a helm
                                template
                              properties:
                                name:
                                  description: Name is the name of the helm parameter
                                  type: string
                                value:
                                  description: Value is the value for the helm parameter
                                  type: string
                              type: object
                            type: array
                          releaseName:
                            description: The Helm release name. If omitted it will
                              use the application name
                            type: string
                          valueFiles:
                            description: ValuesFiles is a list of Helm value files
                              to use when generating a template
                            items:
                              type: string
                            type: array
                        type: object
                      ksonnet:
                        description: ApplicationSourceKsonnet holds ksonnet specific
                          options
                        properties:
                          environment:
                            description: Environment is a ksonnet application environment
                              name
                            type: string
                          parameters:
                            description: Parameters are a list of ksonnet component
                              parameter override values
                            items:
                              description: KsonnetParameter is a ksonnet component
                                parameter
                              properties:
                                component:
                                  type: string
                                name:
                                  type: string
                                value:
                                  type: string
                              required:
                              - name
                              - value
                              type: object
                            type: array
                        type: object
                      kustomize:
                        description: ApplicationSourceKustomize holds kustomize specific
                          options
                        properties:
                          commonLabels:
                            description: CommonLabels adds additional kustomize commonLabels
                            type: object
                          imageTags:
                            description: ImageTags are kustomize 1.0 image tag overrides
                            items:
                              description: KustomizeImageTag is a kustomize image
                                tag
                              properties:
                                name:
                                  description: Name is the name of the image (e.g.
                                    nginx)
                                  type: string
                                value:
                                  description: Value is the value for the new tag
                                    (e.g. 1.8.0)
                                  type: string
                              type: object
                            type: array
                          images:
                            description: Images are kustomize 2.0 image overrides
                            items:
                              type: string
                            type: array
                          namePrefix:
                            description: NamePrefix is a prefix appended to resources
                              for kustomize apps
                            type: string
                        type: object
                      path:
                        description: Path is a directory path within the repository
                          containing a
                        type: string
                      plugin:
                        description: ApplicationSourcePlugin holds config management
                          plugin specific options
                        properties:
                          name:
                            type: string
                        type: object
                      repoURL:
                        description: RepoURL is the git repository URL of the application
                          manifests
                        type: string
                      targetRevision:
                        description: Environment is a ksonnet application environment
                          name TargetRevision defines the commit, tag, or branch in
                          which to sync the application to. If omitted, will sync
                          to HEAD
                        type: string
                    required:
                    - repoURL
                    - path
                    type: object
                required:
                - revision
                - deployedAt
                - id
                type: object
              type: array
            observedAt: {}
            operationState:
              description: OperationState contains information about state of currently
                performing operation on application.
              properties:
                finishedAt: {}
                message:
                  description: Message hold any pertinent messages when attempting
                    to perform operation (typically errors).
                  type: string
                operation:
                  description: Operation contains requested operation parameters.
                  properties:
                    sync:
                      description: SyncOperation contains sync operation details.
                      properties:
                        dryRun:
                          description: DryRun will perform a `kubectl apply --dry-run`
                            without actually performing the sync
                          type: boolean
                        manifests:
                          description: Manifests is an optional field that overrides
                            sync source with a local directory for development
                          items:
                            type: string
                          type: array
                        prune:
                          description: Prune deletes resources that are no longer
                            tracked in git
                          type: boolean
                        resources:
                          description: Resources describes which resources to sync
                          items:
                            description: SyncOperationResource contains resources
                              to sync.
                            properties:
                              group:
                                type: string
                              kind:
                                type: string
                              name:
                                type: string
                            required:
                            - kind
                            - name
                            type: object
                          type: array
                        revision:
                          description: Revision is the git revision in which to sync
                            the application to. If omitted, will use the revision
                            specified in app spec.
                          type: string
                        source:
                          description: ApplicationSource contains information about
                            github repository, path within repository and target application
                            environment.
                          properties:
                            directory:
                              properties:
                                jsonnet:
                                  description: ApplicationSourceJsonnet holds jsonnet
                                    specific options
                                  properties:
                                    extVars:
                                      description: ExtVars is a list of Jsonnet External
                                        Variables
                                      items:
                                        description: JsonnetVar is a jsonnet variable
                                        properties:
                                          code:
                                            type: boolean
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                    tlas:
                                      description: TLAS is a list of Jsonnet Top-level
                                        Arguments
                                      items:
                                        description: JsonnetVar is a jsonnet variable
                                        properties:
                                          code:
                                            type: boolean
                                          name:
                                            type: string
                                          value:
                                            type: string
                                        required:
                                        - name
                                        - value
                                        type: object
                                      type: array
                                  type: object
                                recurse:
                                  type: boolean
                              type: object
                            helm:
                              description: ApplicationSourceHelm holds helm specific
                                options
                              properties:
                                parameters:
                                  description: Parameters are parameters to the helm
                                    template
                                  items:
                                    description: HelmParameter is a parameter to a
                                      helm template
                                    properties:
                                      name:
                                        description: Name is the name of the helm
                                          parameter
                                        type: string
                                      value:
                                        description: Value is the value for the helm
                                          parameter
                                        type: string
                                    type: object
                                  type: array
                                releaseName:
                                  description: The Helm release name. If omitted it
                                    will use the application name
                                  type: string
                                valueFiles:
                                  description: ValuesFiles is a list of Helm value
                                    files to use when generating a template
                                  items:
                                    type: string
                                  type: array
                              type: object
                            ksonnet:
                              description: ApplicationSourceKsonnet holds ksonnet
                                specific options
                              properties:
                                environment:
                                  description: Environment is a ksonnet application
                                    environment name
                                  type: string
                                parameters:
                                  description: Parameters are a list of ksonnet component
                                    parameter override values
                                  items:
                                    description: KsonnetParameter is a ksonnet component
                                      parameter
                                    properties:
                                      component:
                                        type: string
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                              type: object
                            kustomize:
                              description: ApplicationSourceKustomize holds kustomize
                                specific options
                              properties:
                                commonLabels:
                                  description: CommonLabels adds additional kustomize
                                    commonLabels
                                  type: object
                                imageTags:
                                  description: ImageTags are kustomize 1.0 image tag
                                    overrides
                                  items:
                                    description: KustomizeImageTag is a kustomize
                                      image tag
                                    properties:
                                      name:
                                        description: Name is the name of the image
                                          (e.g. nginx)
                                        type: string
                                      value:
                                        description: Value is the value for the new
                                          tag (e.g. 1.8.0)
                                        type: string
                                    type: object
                                  type: array
                                images:
                                  description: Images are kustomize 2.0 image overrides
                                  items:
                                    type: string
                                  type: array
                                namePrefix:
                                  description: NamePrefix is a prefix appended to
                                    resources for kustomize apps
                                  type: string
                              type: object
                            path:
                              description: Path is a directory path within the repository
                                containing a
                              type: string
                            plugin:
                              description: ApplicationSourcePlugin holds config management
                                plugin specific options
                              properties:
                                name:
                                  type: string
                              type: object
                            repoURL:
                              description: RepoURL is the git repository URL of the
                                application manifests
                              type: string
                            targetRevision:
                              description: Environment is a ksonnet application environment
                                name TargetRevision defines the commit, tag, or branch
                                in which to sync the application to. If omitted, will
                                sync to HEAD
                              type: string
                          required:
                          - repoURL
                          - path
                          type: object
                        syncStrategy:
                          description: SyncStrategy controls the manner in which a
                            sync is performed
                          properties:
                            apply:
                              description: SyncStrategyApply uses `kubectl apply`
                                to perform the apply
                              properties:
                                force:
                                  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.
                                  type: boolean
                              type: object
                            hook:
                              description: SyncStrategyHook will perform a sync using
                                hooks annotations. If no hook annotation is specified
                                falls back to `kubectl apply`.
                              properties:
                                SyncStrategyApply:
                                  description: SyncStrategyApply uses `kubectl apply`
                                    to perform the apply
                                  properties:
                                    force:
                                      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.
                                      type: boolean
                                  type: object
                              type: object
                          type: object
                      type: object
                  type: object
                phase:
                  description: Phase is the current phase of the operation
                  type: string
                startedAt: {}
                syncResult:
                  description: SyncOperationResult represent result of sync operation
                  properties:
                    resources:
                      description: Resources holds the sync result of each individual
                        resource
                      items:
                        description: ResourceResult holds the operation result details
                          of a specific resource
                        properties:
                          group:
                            type: string
                          hookPhase:
                            description: 'the state of any operation associated with
                              this resource OR hook note: can contain values for non-hook
                              resources'
                            type: string
                          hookType:
                            description: the type of the hook, empty for non-hook
                              resources
                            type: string
                          kind:
                            type: string
                          message:
                            description: message for the last sync OR operation
                            type: string
                          name:
                            type: string
                          namespace:
                            type: string
                          status:
                            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
                            type: string
                          syncPhase:
                            description: indicates the particular phase of the sync
                              that this is for
                            type: string
                          version:
                            type: string
                        required:
                        - group
                        - version
                        - kind
                        - namespace
                        - name
                        type: object
                      type: array
                    revision:
                      description: Revision holds the git commit SHA of the sync
                      type: string
                    source:
                      description: ApplicationSource contains information about github
                        repository, path within repository and target application
                        environment.
                      properties:
                        directory:
                          properties:
                            jsonnet:
                              description: ApplicationSourceJsonnet holds jsonnet
                                specific options
                              properties:
                                extVars:
                                  description: ExtVars is a list of Jsonnet External
                                    Variables
                                  items:
                                    description: JsonnetVar is a jsonnet variable
                                    properties:
                                      code:
                                        type: boolean
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                tlas:
                                  description: TLAS is a list of Jsonnet Top-level
                                    Arguments
                                  items:
                                    description: JsonnetVar is a jsonnet variable
                                    properties:
                                      code:
                                        type: boolean
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                              type: object
                            recurse:
                              type: boolean
                          type: object
                        helm:
                          description: ApplicationSourceHelm holds helm specific options
                          properties:
                            parameters:
                              description: Parameters are parameters to the helm template
                              items:
                                description: HelmParameter is a parameter to a helm
                                  template
                                properties:
                                  name:
                                    description: Name is the name of the helm parameter
                                    type: string
                                  value:
                                    description: Value is the value for the helm parameter
                                    type: string
                                type: object
                              type: array
                            releaseName:
                              description: The Helm release name. If omitted it will
                                use the application name
                              type: string
                            valueFiles:
                              description: ValuesFiles is a list of Helm value files
                                to use when generating a template
                              items:
                                type: string
                              type: array
                          type: object
                        ksonnet:
                          description: ApplicationSourceKsonnet holds ksonnet specific
                            options
                          properties:
                            environment:
                              description: Environment is a ksonnet application environment
                                name
                              type: string
                            parameters:
                              description: Parameters are a list of ksonnet component
                                parameter override values
                              items:
                                description: KsonnetParameter is a ksonnet component
                                  parameter
                                properties:
                                  component:
                                    type: string
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                          type: object
                        kustomize:
                          description: ApplicationSourceKustomize holds kustomize
                            specific options
                          properties:
                            commonLabels:
                              description: CommonLabels adds additional kustomize
                                commonLabels
                              type: object
                            imageTags:
                              description: ImageTags are kustomize 1.0 image tag overrides
                              items:
                                description: KustomizeImageTag is a kustomize image
                                  tag
                                properties:
                                  name:
                                    description: Name is the name of the image (e.g.
                                      nginx)
                                    type: string
                                  value:
                                    description: Value is the value for the new tag
                                      (e.g. 1.8.0)
                                    type: string
                                type: object
                              type: array
                            images:
                              description: Images are kustomize 2.0 image overrides
                              items:
                                type: string
                              type: array
                            namePrefix:
                              description: NamePrefix is a prefix appended to resources
                                for kustomize apps
                              type: string
                          type: object
                        path:
                          description: Path is a directory path within the repository
                            containing a
                          type: string
                        plugin:
                          description: ApplicationSourcePlugin holds config management
                            plugin specific options
                          properties:
                            name:
                              type: string
                          type: object
                        repoURL:
                          description: RepoURL is the git repository URL of the application
                            manifests
                          type: string
                        targetRevision:
                          description: Environment is a ksonnet application environment
                            name TargetRevision defines the commit, tag, or branch
                            in which to sync the application to. If omitted, will
                            sync to HEAD
                          type: string
                      required:
                      - repoURL
                      - path
                      type: object
                  required:
                  - revision
                  type: object
              required:
              - operation
              - phase
              - startedAt
              type: object
            reconciledAt: {}
            resources:
              items:
                description: ResourceStatus holds the current sync and health status
                  of a resource
                properties:
                  group:
                    type: string
                  health:
                    properties:
                      message:
                        type: string
                      status:
                        type: string
                    type: object
                  hook:
                    type: boolean
                  kind:
                    type: string
                  name:
                    type: string
                  namespace:
                    type: string
                  status:
                    type: string
                  version:
                    type: string
                type: object
              type: array
            sourceType:
              type: string
            summary:
              properties:
                externalURLs:
                  description: ExternalURLs holds all external URLs of application
                    child resources.
                  items:
                    type: string
                  type: array
                images:
                  description: Images holds all images of application child resources.
                  items:
                    type: string
                  type: array
              type: object
            sync:
              description: SyncStatus is a comparison result of application spec and
                deployed application.
              properties:
                comparedTo:
                  description: ComparedTo contains application source and target which
                    was used for resources comparison
                  properties:
                    destination:
                      description: ApplicationDestination contains deployment destination
                        information
                      properties:
                        namespace:
                          description: Namespace overrides the environment namespace
                            value in the ksonnet app.yaml
                          type: string
                        server:
                          description: Server overrides the environment server value
                            in the ksonnet app.yaml
                          type: string
                      type: object
                    source:
                      description: ApplicationSource contains information about github
                        repository, path within repository and target application
                        environment.
                      properties:
                        directory:
                          properties:
                            jsonnet:
                              description: ApplicationSourceJsonnet holds jsonnet
                                specific options
                              properties:
                                extVars:
                                  description: ExtVars is a list of Jsonnet External
                                    Variables
                                  items:
                                    description: JsonnetVar is a jsonnet variable
                                    properties:
                                      code:
                                        type: boolean
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                tlas:
                                  description: TLAS is a list of Jsonnet Top-level
                                    Arguments
                                  items:
                                    description: JsonnetVar is a jsonnet variable
                                    properties:
                                      code:
                                        type: boolean
                                      name:
                                        type: string
                                      value:
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                              type: object
                            recurse:
                              type: boolean
                          type: object
                        helm:
                          description: ApplicationSourceHelm holds helm specific options
                          properties:
                            parameters:
                              description: Parameters are parameters to the helm template
                              items:
                                description: HelmParameter is a parameter to a helm
                                  template
                                properties:
                                  name:
                                    description: Name is the name of the helm parameter
                                    type: string
                                  value:
                                    description: Value is the value for the helm parameter
                                    type: string
                                type: object
                              type: array
                            releaseName:
                              description: The Helm release name. If omitted it will
                                use the application name
                              type: string
                            valueFiles:
                              description: ValuesFiles is a list of Helm value files
                                to use when generating a template
                              items:
                                type: string
                              type: array
                          type: object
                        ksonnet:
                          description: ApplicationSourceKsonnet holds ksonnet specific
                            options
                          properties:
                            environment:
                              description: Environment is a ksonnet application environment
                                name
                              type: string
                            parameters:
                              description: Parameters are a list of ksonnet component
                                parameter override values
                              items:
                                description: KsonnetParameter is a ksonnet component
                                  parameter
                                properties:
                                  component:
                                    type: string
                                  name:
                                    type: string
                                  value:
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                          type: object
                        kustomize:
                          description: ApplicationSourceKustomize holds kustomize
                            specific options
                          properties:
                            commonLabels:
                              description: CommonLabels adds additional kustomize
                                commonLabels
                              type: object
                            imageTags:
                              description: ImageTags are kustomize 1.0 image tag overrides
                              items:
                                description: KustomizeImageTag is a kustomize image
                                  tag
                                properties:
                                  name:
                                    description: Name is the name of the image (e.g.
                                      nginx)
                                    type: string
                                  value:
                                    description: Value is the value for the new tag
                                      (e.g. 1.8.0)
                                    type: string
                                type: object
                              type: array
                            images:
                              description: Images are kustomize 2.0 image overrides
                              items:
                                type: string
                              type: array
                            namePrefix:
                              description: NamePrefix is a prefix appended to resources
                                for kustomize apps
                              type: string
                          type: object
                        path:
                          description: Path is a directory path within the repository
                            containing a
                          type: string
                        plugin:
                          description: ApplicationSourcePlugin holds config management
                            plugin specific options
                          properties:
                            name:
                              type: string
                          type: object
                        repoURL:
                          description: RepoURL is the git repository URL of the application
                            manifests
                          type: string
                        targetRevision:
                          description: Environment is a ksonnet application environment
                            name TargetRevision defines the commit, tag, or branch
                            in which to sync the application to. If omitted, will
                            sync to HEAD
                          type: string
                      required:
                      - repoURL
                      - path
                      type: object
                  required:
                  - source
                  - destination
                  type: object
                revision:
                  type: string
                status:
                  type: string
              required:
              - status
              type: object
          type: object
      type: object
  version: v1alpha1
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  labels:
    app.kubernetes.io/name: appprojects.argoproj.io
    app.kubernetes.io/part-of: argocd
  name: appprojects.argoproj.io
spec:
  group: argoproj.io
  names:
    kind: AppProject
    plural: appprojects
    shortNames:
    - appproj
    - appprojs
  scope: Namespaced
  validation:
    openAPIV3Schema:
      properties:
        apiVersion:
          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/api-conventions.md#resources'
          type: string
        kind:
          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/api-conventions.md#types-kinds'
          type: string
        metadata: {}
        spec:
          description: AppProjectSpec is the specification of an AppProject
          properties:
            clusterResourceWhitelist:
              description: ClusterResourceWhitelist contains list of whitelisted cluster
                level resources
              items: {}
              type: array
            description:
              description: Description contains optional project description
              type: string
            destinations:
              description: Destinations contains list of destinations available for
                deployment
              items:
                description: ApplicationDestination contains deployment destination
                  information
                properties:
                  namespace:
                    description: Namespace overrides the environment namespace value
                      in the ksonnet app.yaml
                    type: string
                  server:
                    description: Server overrides the environment server value in
                      the ksonnet app.yaml
                    type: string
                type: object
              type: array
            namespaceResourceBlacklist:
              description: NamespaceResourceBlacklist contains list of blacklisted
                namespace level resources
              items: {}
              type: array
            roles:
              description: Roles are user defined RBAC roles associated with this
                project
              items:
                description: ProjectRole represents a role that has access to a project
                properties:
                  description:
                    description: Description is a description of the role
                    type: string
                  groups:
                    description: Groups are a list of OIDC group claims bound to this
                      role
                    items:
                      type: string
                    type: array
                  jwtTokens:
                    description: JWTTokens are a list of generated JWT tokens bound
                      to this role
                    items:
                      description: JWTToken holds the issuedAt and expiresAt values
                        of a token
                      properties:
                        exp:
                          format: int64
                          type: integer
                        iat:
                          format: int64
                          type: integer
                      required:
                      - iat
                      type: object
                    type: array
                  name:
                    description: Name is a name for this role
                    type: string
                  policies:
                    description: Policies Stores a list of casbin formated strings
                      that define access policies for the role in the project
                    items:
                      type: string
                    type: array
                required:
                - name
                type: object
              type: array
            sourceRepos:
              description: SourceRepos contains list of git repository URLs which
                can be used for deployment
              items:
                type: string
              type: array
          type: object
      type: object
  version: v1alpha1
---
apiVersion: v1
kind: List
items:
  - apiVersion: v1
    kind: ServiceAccount
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: application-controller
    app.kubernetes.io/name: argocd-application-controller
    app.kubernetes.io/part-of: argocd
  name: argocd-application-controller
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: dex-server
    app.kubernetes.io/name: argocd-dex-server
    app.kubernetes.io/part-of: argocd
  name: argocd-dex-server
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: application-controller
    app.kubernetes.io/name: argocd-application-controller
    app.kubernetes.io/part-of: argocd
  name: argocd-application-controller
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  - configmaps
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - argoproj.io
  resources:
  - applications
  - appprojects
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: dex-server
    app.kubernetes.io/name: argocd-dex-server
    app.kubernetes.io/part-of: argocd
  name: argocd-dex-server
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  - configmaps
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
rules:
- apiGroups:
  - ""
  resources:
  - secrets
  - configmaps
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - applications
  - appprojects
  verbs:
  - create
  - get
  - list
  - watch
  - update
  - delete
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: application-controller
    app.kubernetes.io/name: argocd-application-controller
    app.kubernetes.io/part-of: argocd
  name: argocd-application-controller
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - delete
  - get
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - list
- apiGroups:
  - ""
  resources:
  - pods
  - pods/log
  verbs:
  - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: application-controller
    app.kubernetes.io/name: argocd-application-controller
    app.kubernetes.io/part-of: argocd
  name: argocd-application-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: argocd-application-controller
subjects:
- kind: ServiceAccount
  name: argocd-application-controller
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: dex-server
    app.kubernetes.io/name: argocd-dex-server
    app.kubernetes.io/part-of: argocd
  name: argocd-dex-server
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: argocd-dex-server
subjects:
- kind: ServiceAccount
  name: argocd-dex-server
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: argocd-server
subjects:
- kind: ServiceAccount
  name: argocd-server
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: application-controller
    app.kubernetes.io/name: argocd-application-controller
    app.kubernetes.io/part-of: argocd
  name: argocd-application-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argocd-application-controller
subjects:
- kind: ServiceAccount
  name: argocd-application-controller
  namespace: argocd
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: argocd-server
subjects:
- kind: ServiceAccount
  name: argocd-server
  namespace: argocd
---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/name: argocd-cm
    app.kubernetes.io/part-of: argocd
  name: argocd-cm
---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/name: argocd-rbac-cm
    app.kubernetes.io/part-of: argocd
  name: argocd-rbac-cm
---
apiVersion: v1
kind: Secret
metadata:
  labels:
    app.kubernetes.io/name: argocd-secret
    app.kubernetes.io/part-of: argocd
  name: argocd-secret
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: dex-server
    app.kubernetes.io/name: argocd-dex-server
    app.kubernetes.io/part-of: argocd
  name: argocd-dex-server
spec:
  ports:
  - name: http
    port: 5556
    protocol: TCP
    targetPort: 5556
  - name: grpc
    port: 5557
    protocol: TCP
    targetPort: 5557
  selector:
    app.kubernetes.io/name: argocd-dex-server
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: metrics
    app.kubernetes.io/name: argocd-metrics
    app.kubernetes.io/part-of: argocd
  name: argocd-metrics
spec:
  ports:
  - name: metrics
    port: 8082
    protocol: TCP
    targetPort: 8082
  selector:
    app.kubernetes.io/name: argocd-application-controller
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: redis
    app.kubernetes.io/name: argocd-redis
    app.kubernetes.io/part-of: argocd
  name: argocd-redis
spec:
  ports:
  - name: tcp-redis
    port: 6379
    targetPort: 6379
  selector:
    app.kubernetes.io/name: argocd-redis
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: repo-server
    app.kubernetes.io/name: argocd-repo-server
    app.kubernetes.io/part-of: argocd
  name: argocd-repo-server
spec:
  ports:
  - name: server
    port: 8081
    protocol: TCP
    targetPort: 8081
  - name: metrics
    port: 8084
    protocol: TCP
    targetPort: 8084
  selector:
    app.kubernetes.io/name: argocd-repo-server
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server-metrics
    app.kubernetes.io/part-of: argocd
  name: argocd-server-metrics
spec:
  ports:
  - name: metrics
    port: 8083
    protocol: TCP
    targetPort: 8083
  selector:
    app.kubernetes.io/name: argocd-server
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    port: 443
    protocol: TCP
    targetPort: 8080
  selector:
    app.kubernetes.io/name: argocd-server
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: application-controller
    app.kubernetes.io/name: argocd-application-controller
    app.kubernetes.io/part-of: argocd
  name: argocd-application-controller
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-application-controller
  strategy:
    type: Recreate
  template:
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: application-controller
        app.kubernetes.io/name: argocd-application-controller
        app.kubernetes.io/part-of: argocd
      name: argocd-application-controller
  - apiVersion: v1
    kind: ServiceAccount
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: dex-server
        app.kubernetes.io/name: argocd-dex-server
        app.kubernetes.io/part-of: argocd
      name: argocd-dex-server
  - apiVersion: v1
    kind: ServiceAccount
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: application-controller
        app.kubernetes.io/name: argocd-application-controller
        app.kubernetes.io/part-of: argocd
      name: argocd-application-controller
    rules:
    - apiGroups:
      - ""
      resources:
      - secrets
      - configmaps
      verbs:
      - get
      - list
      - watch
    - apiGroups:
      - argoproj.io
      resources:
      - applications
      - appprojects
      verbs:
      - create
      - get
      - list
      - watch
      - update
      - patch
      - delete
    - apiGroups:
      - ""
      resources:
      - events
      verbs:
      - create
      - list
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: dex-server
        app.kubernetes.io/name: argocd-dex-server
        app.kubernetes.io/part-of: argocd
      name: argocd-dex-server
    rules:
    - apiGroups:
      - ""
      resources:
      - secrets
      - configmaps
      verbs:
      - get
      - list
      - watch
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    rules:
    - apiGroups:
      - ""
      resources:
      - secrets
      - configmaps
      verbs:
      - create
      - get
      - list
      - watch
      - update
      - patch
      - delete
    - apiGroups:
      - argoproj.io
      resources:
      - applications
      - appprojects
      verbs:
      - create
      - get
      - list
      - watch
      - update
      - delete
      - patch
    - apiGroups:
      - ""
      resources:
      - events
      verbs:
      - create
      - list
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: application-controller
        app.kubernetes.io/name: argocd-application-controller
        app.kubernetes.io/part-of: argocd
      name: argocd-application-controller
    rules:
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - '*'
    - nonResourceURLs:
      - '*'
      verbs:
      - '*'
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    rules:
    - apiGroups:
      - '*'
      resources:
      - '*'
      verbs:
      - delete
      - get
      - patch
    - apiGroups:
      - ""
      resources:
      - events
      verbs:
      - list
    - apiGroups:
      - ""
      resources:
      - pods
      - pods/log
      verbs:
      - get
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: application-controller
        app.kubernetes.io/name: argocd-application-controller
        app.kubernetes.io/part-of: argocd
      name: argocd-application-controller
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: argocd-application-controller
    subjects:
    - kind: ServiceAccount
      name: argocd-application-controller
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: dex-server
        app.kubernetes.io/name: argocd-dex-server
        app.kubernetes.io/part-of: argocd
      name: argocd-dex-server
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: argocd-dex-server
    subjects:
    - kind: ServiceAccount
      name: argocd-dex-server
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: argocd-server
    subjects:
    - kind: ServiceAccount
      name: argocd-server
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: application-controller
        app.kubernetes.io/name: argocd-application-controller
        app.kubernetes.io/part-of: argocd
      name: argocd-application-controller
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: argocd-application-controller
    subjects:
    - kind: ServiceAccount
      name: argocd-application-controller
      namespace: argocd
  - apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: argocd-server
    subjects:
    - kind: ServiceAccount
      name: argocd-server
      namespace: argocd
  - apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/name: argocd-cm
        app.kubernetes.io/part-of: argocd
      name: argocd-cm
  - apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/name: argocd-rbac-cm
        app.kubernetes.io/part-of: argocd
      name: argocd-rbac-cm
  - apiVersion: v1
    kind: Secret
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/name: argocd-secret
        app.kubernetes.io/part-of: argocd
      name: argocd-secret
    type: Opaque
  - apiVersion: v1
    kind: Service
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: dex-server
        app.kubernetes.io/name: argocd-dex-server
        app.kubernetes.io/part-of: argocd
      name: argocd-dex-server
    spec:
      ports:
      - name: http
        port: 5556
        protocol: TCP
        targetPort: 5556
      - name: grpc
        port: 5557
        protocol: TCP
        targetPort: 5557
      selector:
      containers:
      - command:
        - argocd-application-controller
        - --status-processors
        - "20"
        - --operation-processors
        - "10"
        image: argoproj/argocd:v1.1.2
        imagePullPolicy: Always
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8082
          initialDelaySeconds: 5
          periodSeconds: 10
        name: argocd-application-controller
        ports:
        - containerPort: 8082
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8082
          initialDelaySeconds: 5
          periodSeconds: 10
      serviceAccountName: argocd-application-controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: dex-server
    app.kubernetes.io/name: argocd-dex-server
    app.kubernetes.io/part-of: argocd
  name: argocd-dex-server
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-dex-server
  template:
    metadata:
      labels:
        app.kubernetes.io/name: argocd-dex-server
  - apiVersion: v1
    kind: Service
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: metrics
        app.kubernetes.io/name: argocd-metrics
        app.kubernetes.io/part-of: argocd
      name: argocd-metrics
    spec:
      ports:
      - name: metrics
        port: 8082
        protocol: TCP
        targetPort: 8082
      selector:
        app.kubernetes.io/name: argocd-application-controller
  - apiVersion: v1
    kind: Service
      containers:
      - command:
        - /shared/argocd-util
        - rundex
        image: quay.io/dexidp/dex:v2.14.0
        imagePullPolicy: Always
        name: dex
        ports:
        - containerPort: 5556
        - containerPort: 5557
        volumeMounts:
        - mountPath: /shared
          name: static-files
      initContainers:
      - command:
        - cp
        - /usr/local/bin/argocd-util
        - /shared
        image: argoproj/argocd:v1.1.2
        imagePullPolicy: Always
        name: copyutil
        volumeMounts:
        - mountPath: /shared
          name: static-files
      serviceAccountName: argocd-dex-server
      volumes:
      - emptyDir: {}
        name: static-files
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: redis
    app.kubernetes.io/name: argocd-redis
    app.kubernetes.io/part-of: argocd
  name: argocd-redis
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-redis
  template:
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: redis
        app.kubernetes.io/name: argocd-redis
        app.kubernetes.io/part-of: argocd
      name: argocd-redis
    spec:
      ports:
      - name: tcp-redis
        port: 6379
        targetPort: 6379
      selector:
        app.kubernetes.io/name: argocd-redis
  - apiVersion: v1
    kind: Service
      containers:
      - args:
        - --save
        - ""
        - --appendonly
        - "no"
        image: redis:5.0.3
        imagePullPolicy: Always
        name: redis
        ports:
        - containerPort: 6379
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: repo-server
    app.kubernetes.io/name: argocd-repo-server
    app.kubernetes.io/part-of: argocd
  name: argocd-repo-server
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-repo-server
  template:
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: repo-server
        app.kubernetes.io/name: argocd-repo-server
        app.kubernetes.io/part-of: argocd
      name: argocd-repo-server
    spec:
      ports:
      - name: server
        port: 8081
        protocol: TCP
        targetPort: 8081
      - name: metrics
        port: 8084
        protocol: TCP
        targetPort: 8084
      selector:
        app.kubernetes.io/name: argocd-repo-server
  - apiVersion: v1
    kind: Service
      automountServiceAccountToken: false
      containers:
      - command:
        - argocd-repo-server
        - --redis
        - argocd-redis:6379
        image: argoproj/argocd:v1.1.2
        imagePullPolicy: Always
        livenessProbe:
          initialDelaySeconds: 5
          periodSeconds: 10
          tcpSocket:
            port: 8081
        name: argocd-repo-server
        ports:
        - containerPort: 8081
        - containerPort: 8084
        readinessProbe:
          initialDelaySeconds: 5
          periodSeconds: 10
          tcpSocket:
            port: 8081
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: argocd-server
  template:
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server-metrics
        app.kubernetes.io/part-of: argocd
      name: argocd-server-metrics
    spec:
      ports:
      - name: metrics
        port: 8083
        protocol: TCP
        targetPort: 8083
      selector:
        app.kubernetes.io/name: argocd-server
  - apiVersion: v1
    kind: Service
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    spec:
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 8080
      - name: https
        port: 443
        protocol: TCP
        targetPort: 8080
      selector:
        app.kubernetes.io/name: argocd-server
  - apiVersion: apps/v1
    kind: Deployment
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: application-controller
        app.kubernetes.io/name: argocd-application-controller
        app.kubernetes.io/part-of: argocd
      name: argocd-application-controller
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: argocd-application-controller
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app.kubernetes.io/name: argocd-application-controller
        spec:
          containers:
          - command:
            - argocd-application-controller
            - --status-processors
            - "20"
            - --operation-processors
            - "10"
            image: argoproj/argocd:v1.1.2
            imagePullPolicy: Always
            livenessProbe:
              httpGet:
                path: /healthz
                port: 8082
              initialDelaySeconds: 5
              periodSeconds: 10
            name: argocd-application-controller
            ports:
            - containerPort: 8082
            readinessProbe:
              httpGet:
                path: /healthz
                port: 8082
              initialDelaySeconds: 5
              periodSeconds: 10
          serviceAccountName: argocd-application-controller
  - apiVersion: apps/v1
    kind: Deployment
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: dex-server
        app.kubernetes.io/name: argocd-dex-server
        app.kubernetes.io/part-of: argocd
      name: argocd-dex-server
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: argocd-dex-server
      template:
        metadata:
          labels:
            app.kubernetes.io/name: argocd-dex-server
        spec:
          containers:
          - command:
            - /shared/argocd-util
            - rundex
            image: quay.io/dexidp/dex:v2.14.0
            imagePullPolicy: Always
            name: dex
            ports:
            - containerPort: 5556
            - containerPort: 5557
            volumeMounts:
            - mountPath: /shared
              name: static-files
          initContainers:
          - command:
            - cp
            - /usr/local/bin/argocd-util
            - /shared
            image: argoproj/argocd:v1.1.2
            imagePullPolicy: Always
            name: copyutil
            volumeMounts:
            - mountPath: /shared
              name: static-files
          serviceAccountName: argocd-dex-server
          volumes:
          - emptyDir: {}
            name: static-files
  - apiVersion: apps/v1
    kind: Deployment
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: redis
        app.kubernetes.io/name: argocd-redis
        app.kubernetes.io/part-of: argocd
      name: argocd-redis
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: argocd-redis
      template:
        metadata:
          labels:
            app.kubernetes.io/name: argocd-redis
        spec:
          containers:
          - args:
            - --save
            - ""
            - --appendonly
            - "no"
            image: redis:5.0.3
            imagePullPolicy: Always
            name: redis
            ports:
            - containerPort: 6379
  - apiVersion: apps/v1
    kind: Deployment
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: repo-server
        app.kubernetes.io/name: argocd-repo-server
        app.kubernetes.io/part-of: argocd
      name: argocd-repo-server
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: argocd-repo-server
      template:
        metadata:
          labels:
            app.kubernetes.io/name: argocd-repo-server
        spec:
          automountServiceAccountToken: false
          containers:
          - command:
            - argocd-repo-server
            - --redis
            - argocd-redis:6379
            image: argoproj/argocd:v1.1.2
            imagePullPolicy: Always
            livenessProbe:
              initialDelaySeconds: 5
              periodSeconds: 10
              tcpSocket:
                port: 8081
            name: argocd-repo-server
            ports:
            - containerPort: 8081
            - containerPort: 8084
            readinessProbe:
              initialDelaySeconds: 5
              periodSeconds: 10
              tcpSocket:
                port: 8081
  - apiVersion: apps/v1
    kind: Deployment
    metadata:
      namespace: "{{ _argocd_project }}"
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
    spec:
      selector:
        matchLabels:
          app.kubernetes.io/name: argocd-server
      template:
        metadata:
          labels:
            app.kubernetes.io/name: argocd-server
        spec:
          containers:
          - command:
            - argocd-server
            - --insecure
            - --staticassets
            - /shared/app
            image: argoproj/argocd:v1.1.2
            imagePullPolicy: Always
            livenessProbe:
              httpGet:
                path: /healthz
                port: 8080
              initialDelaySeconds: 3
              periodSeconds: 30
            name: argocd-server
            ports:
            - containerPort: 8080
            - containerPort: 8083
            readinessProbe:
              httpGet:
                path: /healthz
                port: 8080
              initialDelaySeconds: 3
              periodSeconds: 30
            volumeMounts:
            - mountPath: /shared
              name: static-files
          initContainers:
          - command:
            - cp
            - -r
            - /app
            - /shared
            image: argoproj/argocd-ui:v1.1.2
            imagePullPolicy: Always
            name: ui
            volumeMounts:
            - mountPath: /shared
              name: static-files
          serviceAccountName: argocd-server
          volumes:
          - emptyDir: {}
            name: static-files
  - apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      labels:
        app.kubernetes.io/component: server
        app.kubernetes.io/name: argocd-server
        app.kubernetes.io/part-of: argocd
      name: argocd-server
      namespace: "{{ _argocd_project }}"
    spec:
      host: "{{ argocd_route_hostname }}"
      port:
        targetPort: http
      tls:
        insecureEdgeTerminationPolicy: Redirect
        termination: edge
      to:
        kind: Service
      containers:
      - command:
        - argocd-server
        - --staticassets
        - /shared/app
        image: argoproj/argocd:v1.1.2
        imagePullPolicy: Always
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 3
          periodSeconds: 30
        name: argocd-server
        weight: 100
        ports:
        - containerPort: 8080
        - containerPort: 8083
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 3
          periodSeconds: 30
        volumeMounts:
        - mountPath: /shared
          name: static-files
      initContainers:
      - command:
        - cp
        - -r
        - /app
        - /shared
        image: argoproj/argocd-ui:v1.1.2
        imagePullPolicy: Always
        name: ui
        volumeMounts:
        - mountPath: /shared
          name: static-files
      serviceAccountName: argocd-server
      volumes:
      - emptyDir: {}
        name: static-files