All Projects → crossplane-contrib → provider-argocd

crossplane-contrib / provider-argocd

Licence: Apache-2.0 license
Crossplane provider to provision and manage ArgoCD objects

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to provider-argocd

terrajet
Generate Crossplane Providers from any Terraform Provider
Stars: ✭ 159 (+591.3%)
Mutual labels:  crossplane, crossplane-provider
provider-kubernetes
Crossplane provider to provision and manage Kubernetes objects on (remote) Kubernetes clusters.
Stars: ✭ 63 (+173.91%)
Mutual labels:  operator, crossplane
provider-styra
Crossplane Provider for Styra
Stars: ✭ 13 (-43.48%)
Mutual labels:  crossplane, crossplane-provider
cryostat-operator
An OpenShift Operator to facilitate setup and management of Cryostast and expose the Cryostat API through Kubernetes Custom Resources.
Stars: ✭ 25 (+8.7%)
Mutual labels:  operator
grafana-operator
An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Stars: ✭ 449 (+1852.17%)
Mutual labels:  operator
radondb-clickhouse-kubernetes
Open Source,High Availability Cluster,based on ClickHouse
Stars: ✭ 54 (+134.78%)
Mutual labels:  operator
universal-crossplane
Enterprise-grade @crossplane from @upbound
Stars: ✭ 36 (+56.52%)
Mutual labels:  crossplane
minikube-operator
An operator for Minikube - Kubernetes on Kubernetes
Stars: ✭ 26 (+13.04%)
Mutual labels:  operator
mysql-operator
A Kubernetes Operator for MySQL Community Server
Stars: ✭ 21 (-8.7%)
Mutual labels:  operator
wildfly-operator
Kubernetes Operator for WildFly
Stars: ✭ 28 (+21.74%)
Mutual labels:  operator
kaos
Kinda Chaos Monkey for Kubernetes
Stars: ✭ 18 (-21.74%)
Mutual labels:  operator
namespace-provisioner
A Kubernetes operator creating K8s resources by annotating namespaces
Stars: ✭ 52 (+126.09%)
Mutual labels:  operator
horusec-platform
Horusec Platform is a set of web services that integrate with the Horusec CLI to facilitate the visualization and management of found vulnerabilities.
Stars: ✭ 32 (+39.13%)
Mutual labels:  operator
loki-operator
viaq.github.io/loki-operator/
Stars: ✭ 30 (+30.43%)
Mutual labels:  operator
cnat
Example Kubernetes controller: the cloud native at command
Stars: ✭ 147 (+539.13%)
Mutual labels:  operator
operator-manifests
Artisanally packaged Kubernetes Operators
Stars: ✭ 15 (-34.78%)
Mutual labels:  operator
elastalert-operator
The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.
Stars: ✭ 18 (-21.74%)
Mutual labels:  operator
terraform-operator
A Kubernetes CRD to handle terraform operations
Stars: ✭ 204 (+786.96%)
Mutual labels:  operator
ibm-spectrum-scale-csi
The IBM Spectrum Scale Container Storage Interface (CSI) project enables container orchestrators, such as Kubernetes and OpenShift, to manage the life-cycle of persistent storage.
Stars: ✭ 41 (+78.26%)
Mutual labels:  operator
vmq-operator
VerneMQ Operator creates/configures/manages VerneMQ clusters atop Kubernetes
Stars: ✭ 27 (+17.39%)
Mutual labels:  operator

provider-argocd

Overview

provider-argocd is the Crossplane infrastructure provider for argocd. The provider that is built from the source code in this repository can be installed into a Crossplane control plane and adds the following new functionality:

  • Custom Resource Definitions (CRDs) that model argocd resources
  • Controllers to provision these resources in ArgoCD based on the users desired state captured in CRDs they create
  • Implementations of Crossplane's portable resource abstractions, enabling argocd resources to fulfill a user's general need for argocd configurations

Getting Started and Documentation

Follow these steps to get started with provider-argocd.

Optional: Start a Local ArgoCD Server

kind create cluster

kubectl create ns argocd

kubectl apply -n argocd --force -f https://raw.githubusercontent.com/argoproj/argo-cd/release-2.0/manifests/install.yaml

Optional: Create a new user

Follow the steps in the official documentation to create a new user provider-argcod.

Create an API Token

Note: The following steps require the kubectl-view-secret plugin and jq to be installed.

Get the admin passwort via kubectl

ARGOCD_ADMIN_SECRET=$(kubectl view-secret argocd-initial-admin-secret -n argocd -q)

Port forward the argocd api to the host:

kubectl -n argocd port-forward svc/argocd-server 8443:443

Create a session JWT for the admin user at the ArgoCD API. Note: You cannot use this token directly, because it will expire.

ARGOCD_ADMIN_TOKEN=$(curl -s -X POST -k -H "Content-Type: application/json" --data '{"username":"admin","password":"'$ARGOCD_ADMIN_SECRET'"}' https://localhost:8443/api/v1/session | jq -r .token)

Create an API token without expiration that can be used by provider-argocd

ARGOCD_PROVIDER_USER="provider-argocd"

ARGOCD_TOKEN=$(curl -s -X POST -k -H "Authorization: Bearer $ARGOCD_ADMIN_TOKEN" -H "Content-Type: application/json" https://localhost:8443/api/v1/account/$ARGOCD_PROVIDER_USER/token | jq -r .token)

Setup crossplane provider-argocd

Create a kubernetes secret from the JWT so provider-argocd is able to connect to argocd:

kubectl create secret generic argocd-credentials -n crossplane-system --from-literal=authToken="$ARGOCD_TOKEN"

Configure a ProviderConfig with serverAddr pointing to an argocd instance:

apiVersion: argocd.crossplane.io/v1alpha1
kind: ProviderConfig
metadata:
  name: argocd-provider
spec:
  serverAddr: argocd-server.argocd.svc:443
  insecure: true
  credentials:
    source: Secret
    secretRef:
      namespace: crossplane-system
      name: argocd-credentials
      key: authToken
kubectl apply -f examples/providerconfig/provider.yaml

Contributing

provider-argocd is a community driven project and we welcome contributions. See the Crossplane Contributing guidelines to get started.

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

Contact

Please use the following to reach members of the community:

Governance and Owners

provider-argocd is run according to the same Governance and Ownership structure as the core Crossplane project.

Code of Conduct

provider-argocd adheres to the same Code of Conduct as the core Crossplane project.

Licensing

provider-argocd is under the Apache 2.0 license.

FOSSA Status

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].