const DEST=dest; const DOMAIN = config.domain; fn post_template() { let nss = list_namespace().items.filter(|ns| ns.metadata.name.starts_with(global::DOMAIN)).map(|ns| ns.metadata.name); let pgs = []; let rediss = []; let mongos = []; let marias = []; for ns in nss { let svcs = list_service(ns).items; let secrets = list_secret(ns).items; for svc in svcs { if svc.metadata.name.ends_with("-pg-rw") { let basename = svc.metadata.name-"-pg-rw"; let pg_secrets = secrets.filter(|s| s.metadata.name == `${basename}-pg-app`); if pg_secrets.len>0 && basename.split("-").len>1 { let tmp = (basename-"-dataset").split("-"); let comp = tmp[tmp.len-1]; log_info(`Found a PG database ${svc.metadata.namespace} ${basename}`); pgs += #{ name: `${basename}-pg`, dbname: comp, username: comp, namespace: svc.metadata.namespace, secret: #{ name: `${basename}-pg-app`, key: "password" } }; } } if svc.metadata.name.ends_with("-mongo-svc") { let basename = svc.metadata.name-"-mongo-svc"; let mongo_secrets = secrets.filter(|s| s.metadata.name == `${basename}-mongo`); if mongo_secrets.len>0 && basename.split("-").len>1 { let tmp = (basename-"-dataset").split("-"); let comp = tmp[tmp.len-1]; log_info(`Found a MongoDB database ${svc.metadata.namespace} ${basename}`); mongos += #{ name: `${basename}-mongo`, dbname: comp, username: comp, namespace: svc.metadata.namespace, secret: #{ name: `${basename}-mongo`, key: "password" } }; } } } } save_to_tf(`${global::DEST}/detected.tf`, "detected", #{ pgs: pgs, mongos: mongos, rediss: rediss, marias: marias }); }