Git Product home page Git Product logo

epam / edp-argocd-operator Goto Github PK

View Code? Open in Web Editor NEW
0.0 6.0 2.0 1.19 MB

This operator manages ArgoCD Tenants (Projects) deployment using API. It supports Argo Repositories and Applications

Home Page: https://epam.github.io/edp-install/

License: Apache License 2.0

Dockerfile 0.26% Makefile 15.07% Go 82.80% Smarty 1.87%
argocd artifacthub cd edp kubernetes operator operator-sdk operatorhub pipeline tenant argocd-tenant

edp-argocd-operator's Introduction

codecov

EDP Argo CD Operator

โ— Please refer to EDP documentation to get the notion of the main concepts and guidelines.

Get acquainted with the EDP Argo CD Operator, its installation process, local development, and architectural scheme.

Overview

EDP Argo CD Operator is an EDP operator that manages the EDP Argo CD Tenants:

  • Argo CD is deployed in a separate argocd namespace.
  • Argo CD uses a cluster-admin role for managing cluster resources.
  • The control-plane application is created using App of Apps approach, and its code is managed by the control-plane members.
  • The control-plane is used to onboard new Argo CD Tenants (App Projects).
  • The control-plane admin provides JWT Token for each EDP Tenant.
  • The EDP Tenant deploys edp-argocd-operator in its edpTenant EDP namespace, and uses JWT Token provided by control-plane admin.
  • The EDP Tenant Member manages Argo CD Repositories and Argo CD Applications using kind: Secret and kind: ArgoApplication in the edpTenant namespace.

See a diagram below for the details:

edpTenant

Deployment Example

Repository:

apiVersion: v1
kind: Secret
metadata:
  name: demo
  labels:
  # must be type of repository
    argocd.edp.epam.com/secret-type: repository
stringData:
  type: git
  url: ssh://[email protected]:30007/demo.git
  project: team-foo
#  Use insecure to work with privately hosted Git services over SSH.
#  If true, it is the same as use --insecure-skip-server-verification.
#  Optional, default - "false".
#  See: https://argo-cd.readthedocs.io/en/release-1.8/user-guide/private-repositories/#unknown-ssh-hosts
  insecure: "true"
  sshPrivateKey: |
    -----BEGIN OPENSSH PRIVATE KEY-----
    YOUR_PRIVATE_SSH_KEY
    -----END OPENSSH PRIVATE KEY-----

EDP Argo CD Application has the same specification as the native Argo CD Application:

apiVersion: v1.edp.epam.com/v1alpha1
kind: ArgoApplication
metadata:
  name: demo
spec:
  project: team-foo
  destination:
    namespace: team-foo-demo
    server: https://kubernetes.default.svc
  source:
    helm:
      parameters:
        - name: image.tag
          value: master-0.1.0-1
        - name: image.repository
          value: image-repo
    path: deploy-templates
    repoURL: ssh://[email protected]:30007/demo.git
    targetRevision: master
  syncPolicy:
    syncOptions:
      - CreateNamespace=true
    automated:
      selfHeal: true
      prune: true

example

Prerequisites

  1. Linux machine or Windows Subsystem for Linux instance with the installed Helm v.3.
  2. Admin access to the EDP namespace.
  3. Access to Argo CD, including the generated JSON Web Token.
  4. Deployed EDP project/namespace. Please follow the Install EDP instruction.

Installation

In order to install the EDP Argo CD Operator, follow the steps below:

  1. To add the Helm EPAMEDP charts for a local client, run the helm repo add command:

    helm repo add epmdedp https://epam.github.io/edp-helm-charts/stable
  2. Select the available Helm chart version:

    helm search repo epmdedp/edp-argocd-operator -l
    
    NAME                          CHART VERSION   APP VERSION       DESCRIPTION
    epmdedp/edp-argocd-operator   0.2.0           0.2.0             A Helm chart for EDP Argo CD Operator

    NOTE: It is highly recommended to use the latest version of the Helm chart.

  3. Deploy the EDP Argo CD Operator. Chart parameters are specified in the deploy-templates/README file.

  4. Install the EDP Argo CD Operator to the namespace with the following Helm command:

    helm install edp-argocd-operator epamedp/edp-argocd-operator \
      --version <chart_version> --namespace <edp-project>
  5. Check that the deployment of your EDP Argo CD Operator is running in the namespace.

Local Development

In order to develop the operator, first set up a local environment. For details, please refer to the Local Development page.

Development versions are also available, please refer to the snapshot helm chart repository page.

Related Articles

edp-argocd-operator's People

Contributors

artem-zahumonnyi avatar epmd-edp avatar mariiabochechko avatar nikolaymarusenko avatar sergk avatar victormysyk avatar yevheniipokhvalii avatar zmotso avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.