Skip to main content

@opencdk8s/cdk8s-argocd-resources

Project description

cdk8s-argocd-resources

Has the ability to synth ArgoCD Application, and AppProject manifests. See example.

Overview

example

# Example automatically generated from non-compiling source. May contain errors.
import { Construct } from 'constructs';
import { App, Chart, ChartProps } from 'cdk8s';
import * as argo from '@opencdk8s/cdk8s-argocd-resources';

export class MyChart extends Chart {
  constructor(scope: Construct, id: string, props: ChartProps = { }) {
    super(scope, id, props);

    new argo.ArgoCdApplication(this, 'DemoApp', {
      metadata: {
        name: 'demo',
        namespace: 'argocd',
      },
      spec: {
        project: 'default',
        source: {
          repoURL: 'example-git-repo',
          path: 'examplepath',
          targetRevision: 'HEAD',
        },
        destination: {
          server: 'https://kubernetes.default.svc'
        },
        syncPolicy: {
          syncOptions: [
            'ApplyOutOfSyncOnly=true'
          ]
        }
      },
    });

    new argo.ArgoCdProject(this, 'DemoProject', {
      metadata: {
        name: 'demo',
        namespace: 'argocd',
      },
      spec: {
        description: 'demo project',
        sourceRepos: [
          '*'
        ],
        destination: [{
          namespace: 'default',
          server: 'https://kubernetes.default.svc'
        }]
      }

    });

    // define resources here

  }
}

const app = new App();
new MyChart(app, 'asd');
app.synth();
demo.k8s.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: demo
  namespace: argocd
spec:
  destination:
    server: https://kubernetes.default.svc
  project: default
  source:
    path: examplepath
    repoURL: example-git-repo
    targetRevision: HEAD
  syncPolicy:
    syncOptions:
      - ApplyOutOfSyncOnly=true
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
  name: demo
  namespace: argocd
spec:
  description: demo project
  destination:
    - namespace: default
      server: https://kubernetes.default.svc
  sourceRepos:
    - "*"

Installation

TypeScript

Use yarn or npm to install.

$ npm install @opencdk8s/cdk8s-argocd-resources
$ yarn add @opencdk8s/cdk8s-argocd-resources

Python

$ pip install cdk8s-argocd-resources

Contribution

  1. Fork (link)

  2. Bootstrap the repo:

    npx projen   # generates package.json
    yarn install # installs dependencies
    
  3. Development scripts:

    Command Description
    yarn compile Compiles typescript => javascript
    yarn watch Watch & compile
    yarn test Run unit test & linter through jest
    yarn test -u Update jest snapshots
    yarn run package Creates a dist with packages for all languages.
    yarn build Compile + test + package
    yarn bump Bump version (with changelog) based on [conventional commits]
    yarn release Bump + push to master
  4. Create a feature branch

  5. Commit your changes

  6. Rebase your local changes against the master branch

  7. Create a new Pull Request (use conventional commits for the title please)

Licence

Apache License, Version 2.0

Author

Hunter-Thompson

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdk8s-argocd-resources-0.0.5.tar.gz (590.5 kB view details)

Uploaded Source

Built Distribution

cdk8s_argocd_resources-0.0.5-py3-none-any.whl (590.9 kB view details)

Uploaded Python 3

File details

Details for the file cdk8s-argocd-resources-0.0.5.tar.gz.

File metadata

File hashes

Hashes for cdk8s-argocd-resources-0.0.5.tar.gz
Algorithm Hash digest
SHA256 25faec3a98baa36192f148dbfd1bb5e5e0d69bc135d2ca980a0b42f358530817
MD5 f6a8a468eb785738976ba3ba9cd657cd
BLAKE2b-256 586912c3c2fd4f33766f849f6bffa394a1abd53d749a75ff832c3dfb78b1cddb

See more details on using hashes here.

File details

Details for the file cdk8s_argocd_resources-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for cdk8s_argocd_resources-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 cb356e9a5eda39d8fe3c71a79b74ac4d62aa790a31930f5c90d76e434193b2c6
MD5 b767fae0407628c49eabd07e590d9d1a
BLAKE2b-256 8ef6509d09eabeec6b9d99b5a7670e92a782e20f34d646718eed48015da9ba2c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page