public generate()

in lib/addons/argocd/application.ts [12:53]


    public generate(deployment: GitOpsApplicationDeployment, syncOrder?: number) {

        const flatValues = dot.dot(deployment.values);
        const nameValues = [];

        for( let key in flatValues) {
            nameValues.push({ name: key, value: `${flatValues[key]}`});
        }

        const repository = deployment.repository ?? this.generateDefaultRepo(deployment.name);

        return {
            apiVersion: "argoproj.io/v1alpha1",
            kind: "Application",
            metadata: {
                name: deployment.name,
                namespace: 'argocd',
                annotations: {
                    "argocd.argoproj.io/sync-wave": syncOrder == undefined ? "-1" : `${syncOrder}`
                }
            },
            spec: {
                destination: {
                    namespace: deployment.namespace,
                    server: "https://kubernetes.default.svc"
                },
                project: "default", //TODO: make project configurable
                source: {
                    helm: {
                        valueFiles: ["values.yaml"],
                        parameters: nameValues
                    },
                    path: repository.path,
                    repoURL: repository.repoUrl,
                    targetRevision: repository.targetRevision ?? 'HEAD'
                },
                syncPolicy: {
                    automated: {}
                }
            }
        };
    }