{"id":18425719,"url":"https://github.com/faforever/gitops-stack","last_synced_at":"2025-04-07T16:31:59.936Z","repository":{"id":194882445,"uuid":"645952595","full_name":"FAForever/gitops-stack","owner":"FAForever","description":"The gitops stack running faforever.com","archived":false,"fork":false,"pushed_at":"2025-04-02T02:24:17.000Z","size":434,"stargazers_count":1,"open_issues_count":12,"forks_count":3,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-04-02T03:26:52.688Z","etag":null,"topics":["argocd","gitops","iac","k8s"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FAForever.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-26T20:59:46.000Z","updated_at":"2025-03-29T23:10:16.000Z","dependencies_parsed_at":"2024-01-05T15:31:08.664Z","dependency_job_id":"28c93369-b239-4628-b321-469ef388c61a","html_url":"https://github.com/FAForever/gitops-stack","commit_stats":null,"previous_names":["faforever/gitops-stack"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAForever%2Fgitops-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAForever%2Fgitops-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAForever%2Fgitops-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FAForever%2Fgitops-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FAForever","download_url":"https://codeload.github.com/FAForever/gitops-stack/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247688008,"owners_count":20979580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["argocd","gitops","iac","k8s"],"created_at":"2024-11-06T05:05:01.659Z","updated_at":"2025-04-07T16:31:58.544Z","avatar_url":"https://github.com/FAForever.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is this?\n\nThe gitops stack is the deployment infrastructure of the FAForever project. Currently it only contains a subset of service, but in the long term, all services shall be migrate from faf-stack to here.\n\n# Branching\n\n* **main** branch = Production state\n* **develop** branch = Testing state\n\nUntil things are settled the current workflow is:\n* Test changes on develop\n* Cherry pick working stuff on to main\n* Rebase and force push develop afterwards\n\n# Bootstrapping\n\nFirst, we need to make the cluster gitops-ready by installing ArgoCD:\n\n```sh\nkubectl create namespace argocd\nhelm repo add argo https://argoproj.github.io/argo-helm\nhelm install argocd argo/argo-cd -n argocd\n```\n\nThen you can connect to argocd using the credentials generated:\n\n```sh\nPW=$(kubectl get secret -n argocd argocd-initial-admin-secret -o \"jsonpath={.data.password}\" | base64 -d)\n\necho \"Access argocd via http://localhost:8080\"\necho \"User: admin, password: $PW\"\n\nkubectl port-forward -n argocd svc/argocd-server 8080:80\n```\n\nNow, we need to deploy the appsets via\n```sh\nkubectl apply -f app-set-test.yaml\n```\n\nMany apps will fail to start, because the lack the secrets that will be generated by infisical. But infiscal needs be setup too.\nWe use the cloud edition, but there is also a self hosted one we do not cover here.\nFor our stack you need to create a service token in the web ui and add this as a secret in all affected namespaces:\n\n```sh\nfor namespace in \"faf-apps faf-ops argocd\"; do\nkubectl create secret generic \"infisical-service-token\" \\\n    -n \"$namespace\" \\\n    --from-literal=infisicalToken=\u003cyour-token-here\u003e\ndone\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaforever%2Fgitops-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaforever%2Fgitops-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaforever%2Fgitops-stack/lists"}