{"id":22019297,"url":"https://github.com/ccims/gropius-tf","last_synced_at":"2026-04-18T04:31:50.689Z","repository":{"id":211138310,"uuid":"724583563","full_name":"ccims/gropius-tf","owner":"ccims","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-03T07:55:13.000Z","size":39,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T09:48:54.762Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ccims.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-11-28T11:31:46.000Z","updated_at":"2024-09-11T05:15:47.000Z","dependencies_parsed_at":"2024-11-30T05:16:32.924Z","dependency_job_id":"a88ebaed-302c-4b77-ad2c-9cbf9f6409e9","html_url":"https://github.com/ccims/gropius-tf","commit_stats":null,"previous_names":["nk-coding/gropius-tf","ccims/gropius-tf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ccims/gropius-tf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccims%2Fgropius-tf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccims%2Fgropius-tf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccims%2Fgropius-tf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccims%2Fgropius-tf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ccims","download_url":"https://codeload.github.com/ccims/gropius-tf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ccims%2Fgropius-tf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31956825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-30T05:16:36.720Z","updated_at":"2026-04-18T04:31:50.672Z","avatar_url":"https://github.com/ccims.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gropius Terraform Deployment\n\nThis repository contains the Terraform configuration for deploying the Gropius system.\nThis deployment leverages Kubernetes as the underlying infrastructure and can be customized using several input variables.\n\n## Prerequisites\n\n-   [Terraform](https://www.terraform.io/downloads.html) installed on your machine.\n-   Access to a Kubernetes cluster.\n-   A valid `kubeconfig` file for accessing your Kubernetes cluster.\n\n## Input Variables\n\nBelow are the input variables used in this deployment:\n\n| Variable                      | Type   | Description                                                                                                                                                               | Default Value           |\n| ----------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |\n| `admin_password`              | string | The password for the admin user                                                                                                                                           | `admin`                 |\n| `namespace`                   | string | The k8s namespace to deploy the application in                                                                                                                            | `gropius`               |\n| `gropius_endpoint`            | string | The host URL of the Gropius frontend                                                                                                                                      | `http://localhost:4200` |\n| `gropius_version`             | string | The version of Gropius to deploy                                                                                                                                          | `latest`                |\n| `enable_ingress`              | bool   | Whether to enable ingress (only relevant if `gropius_endpoint` starts with `https://`)                                                                                    | `false`                 |\n| `generate_login_service_keys` | bool   | If true, the two private public key pairs for the login service will be generated and stored in k8s secrets. If false, this secret must be created manually (see README). | `true`                  |\n| `sync_github`                 | bool   | Whether to sync the GitHub repositories                                                                                                                                   | `false`                 |\n| `sync_jira`                   | bool   | Whether to sync the Jira issues                                                                                                                                           | `false`                 |\n| `storage_class`               | string | The storage class to use for all databases (nullable)                                                                                                                     | `null`                  |\n| `kubeconfig`                  | string | The kubeconfig file to use for `kubectl`                                                                                                                                  | `./kubeconfig.yaml`     |\n\n## Deployment Steps\n\n1. **Clone the Repository:**\n\n    ```bash\n    git clone https://github.com/ccims/gropius-tf\n    cd gropius-tf\n    ```\n\n2. **Initialize Terraform:**\n\n    Initialize the Terraform workspace by running:\n\n    ```bash\n    terraform init\n    ```\n\n3. **Customize Input Variables:**\n\n    If you want to override any default input variables, you can do so by creating a `terraform.tfvars` file in the repository directory:\n\n    ```hcl\n    admin_password = \"your_admin_password\"\n    gropius_endpoint = \"http://your-gropius-url\"\n    enable_ingress = true\n    sync_github = true\n    sync_jira = true\n    storage_class = \"your_storage_class\"\n    kubeconfig = \"/path/to/your/kubeconfig.yaml\"\n    ```\n\n4. **Apply the Terraform Configuration:**\n\n    Run the following command to deploy the Gropius system:\n\n    ```bash\n    terraform apply --var-file=terraform.tfvars\n    ```\n\n    Confirm the prompt to proceed with the deployment.\n\n5. **Access Gropius:**\n\n    Once the deployment is complete, you can access the Gropius frontend using the URL provided in the `gropius_endpoint` variable.\n    When using the default configuration, don't forget to port-forward the Gropius frontend service to access it locally:\n\n    ```bash\n    kubectl -n gropius port-forward service/frontend 4200:80\n    ```\n\n    Then, open your browser and navigate to `http://localhost:4200`.\n\n## Cleanup\n\nTo destroy the Gropius deployment, run:\n\n```bash\nterraform destroy\n```\n\nThis will remove all resources created by this Terraform configuration.\n\n## Login Service Keys\n\nBy default, the Terraform configuration generates the private and public keys for the login service and stores them in Kubernetes secrets.\nHowever, for production deployments, it is recommended to generate these keys manually and provide them outside of Terraform.\nTo do this, set the `generate_login_service_keys` variable to `false` and create the following Kubernetes secret:\n\n```yaml\napiVersion: v1\ndata:\n  login_specific_private_key: TODO\n  login_specific_public_key: TODO\n  oauth_private_key: TODO\n  oauth_public_key: TODO\nkind: Secret\nmetadata:\n  name: login-service-keys\n  namespace: gropius\ntype: Opaque\n```\n\nNote that both the private and public keys must be in base-64 encoded PEM format.\nAlso, you might need to adjust the namespace if you are using a different one.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccims%2Fgropius-tf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fccims%2Fgropius-tf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fccims%2Fgropius-tf/lists"}