{"id":25723520,"url":"https://github.com/cs-si/safescale","last_synced_at":"2025-05-07T02:32:04.515Z","repository":{"id":37514393,"uuid":"135692144","full_name":"CS-SI/SafeScale","owner":"CS-SI","description":"SafeScale: multicloud management platform","archived":false,"fork":false,"pushed_at":"2023-06-07T12:57:50.000Z","size":164363,"stargazers_count":42,"open_issues_count":14,"forks_count":15,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-06-21T13:09:23.994Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CS-SI.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-01T08:44:54.000Z","updated_at":"2023-11-15T17:32:02.000Z","dependencies_parsed_at":"2024-06-18T22:50:20.292Z","dependency_job_id":"7a5b6224-fa57-4cc4-97a3-76bb08aeff87","html_url":"https://github.com/CS-SI/SafeScale","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2FSafeScale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2FSafeScale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2FSafeScale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CS-SI%2FSafeScale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CS-SI","download_url":"https://codeload.github.com/CS-SI/SafeScale/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240744927,"owners_count":19850858,"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":[],"created_at":"2025-02-25T20:36:57.125Z","updated_at":"2025-02-25T20:36:57.684Z","avatar_url":"https://github.com/CS-SI.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SafeScale: Infrastructure and Platform as Code tool\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/CS-SI/SafeScale/blob/master/LICENSE)\n[![Version](https://img.shields.io/github/release/CS-SI/SafeScale.svg)](https://github.com/CS-SI/SafeScale/releases/latest)\n![Downloads](https://img.shields.io/github/downloads/CS-SI/SafeScale/total)\n\n![Contributors](https://img.shields.io/github/contributors/CS-SI/SafeScale)\n![Forks](https://img.shields.io/github/forks/CS-SI/SafeScale?style=flat)\n![Stars](https://img.shields.io/github/stars/CS-SI/SafeScale)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/CS-SI/SafeScale/v22)](https://goreportcard.com/report/github.com/CS-SI/SafeScale/v22)\n![Go Versions](https://img.shields.io/badge/go-1.18%2C1.19-brightgreen)\n![CodeSizeInBytes](https://img.shields.io/github/languages/code-size/CS-SI/SafeScale)\n\n[![Packages Documentation](https://img.shields.io/badge/go-documentation-blue.svg?label=packages)](https://pkg.go.dev/github.com/CS-SI/SafeScale/v22/lib)\n\nSafeScale is an Infrastructure and Platform as Code tool.\n\n## Table of content\n  - [Description](#description)\n    - [SafeScale Infra](#safescale-infra)\n    - [SafeScale Platform](#safescale-platform)\n  - [Available features](#available-features)\n  - [Contributing](#contributing)\n  - [License](#license)\n\n## Description\nSafeScale offers an APIs and a CLI tools to deploy versatile computing clusters that span multiple Clouds. These APIs and CLIs are divided in 2 service layers:\n\n- SafeScale Infra to manage Cloud infrastructure (IaaS - Infrastructure as a Service)\n- SafeScale Platform to manage Cloud computing platforms (PaaS - Platform as a Service)\n\n### SafeScale Infra\n\nSafeScale Infra offers an API to completely abstract the IaaS services offered by Cloud platforms providers.\nIt allows to:\n\n- Create / Destroy private networks, Create routers, Manage firewall\n- Create / Destroy hosts,\n- Create / Destroy block and object storage,\n- Mount / Unmount object storage as file system,\n- Create / Destroy shares, Connect / Disconnect host to/from shares,\n- Create / Destroy clusters\n- Add / Remove \"features\" (software components) on hosts and clusters\n\nSafeScale Infra provides a complete abstraction overlay over underlying IaaS APIs to mask their heterogeneity.\n\n### SafeScale Platform\n\nSafescale Platform provides PaaS (Platform as a Service) capabilities:\n- deploy a standard cluster\n- deploy a specific cluster, deployment commands are executed in parallel to improve the speed\n\nPlatform can deploy a standard cluster with minimal features:\n- cluster management environment: BOH (Bunch Of Hosts, ie cluster without workload orchestrator like Kubernetes), K8S (with Kubernetes)\n- one or two gateways, including :\n  - a reverse proxy (Kong) with only SSH and HTTPS access allowed by default\n  - an internal load balancer over the cluster\n- the remote desktop\n\nFor example the following command creates a Kubernetes cluster named `k8s-cluster`using `Normal`complexity (3 masters and 3 nodes):\n\n```\n$ safescale cluster create --flavor k8s --complexity Normal k8s-cluster\n```\n\nSupplemental software and/or configurations can be installed in 3 ways on SafeScale Hosts or Clusters:\n- using ssh command (the old and manual way):\n  ```\n  $ safescale ssh run -c \"apt install nginx\" my-host\n  ```\n- using \"SafeScale `Feature`\", that can be seen as the \"ansible\" for SafeScale:\n\n  ```\n  $ safescale cluster feature add mycluster ntpclient\n  ```\n- and using ansible, which is the PREFERRED method to install your software in a SafeScale cluster:\n  installing a simple script:\n  ```\n  $ safescale cluster ansible playbook my-cluster my-ansible-script.yml\n  ```\n\n  where my-ansible-script.yml is something like:\n```yml\n---\n- hosts: nodes\n  tasks:\n    - name: Install golang\n      become: yes\n      apt:\n        pkg:\n          - golang\n          - bison\n\n```\n\n  or a more complex one (put all your files in a .zip)\n  ```\n  $ safescale cluster ansible playbook my-cluster my-zipped-scripts.zip\n  ```\n\nA \"SafeScale `Feature`\" is a file in YAML format that describes the operations to check/add/remove software and/or configuration on a target (Host or Cluster).\n\nA `Feature` can describe operations using bash snippets.\n\nAdditionally, a `Feature` is able to apply:\n- reverse proxy rules\n\n## Available features\nSafeScale is currently under active development and does not yet offer all the abilities planned. However, we are already publishing it with the following ones:\n\n  - SafeScale Infra:\n    - Create / Destroy private networks\n    - Create / Destroy hosts,\n    - Create / Destroy block and object storage,\n    - Mount object storage on file system,\n    - Create Shares, Connect/disconnect host to share,\n    - Create / Update/Destroy Security Groups,\n      \n  - SafeScale Platform:\n    - Create / Destroy clusters composed of a network, servers and services\n      currently supported:\n        - BOH = Bunch Of Hosts (without any cluster management layer)\n        - Kubernetes\n    - Add / Remove \"features\" on host and clusters\n\n\n - Supported Cloud providers:\n    - OVH Public Cloud\n    - FlexibleEngine\n    - CloudFerro\n    - Generic OpenStack\n    - AWS\n    - GCP (Google Cloud Platform)\n    - Outscale\n    - Azure (Work In Progress)\n\n\n## Contributing\n\nWe are looking for new contributors.\n\nIf you wish to contribute you can [fork the project](https://help.github.com/forking/), make your changes, commit to your repository, and then [create a pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/). The development team can then review your contribution and commit it upstream as appropriate.\n\nAs much as possible, try following these guides:\n- [godoc documentation tool formalism](https://blog.golang.org/godoc-documenting-go-code).\n- [Go style guide](https://github.com/golang/go/wiki/CodeReviewComments)\n- [Effective Go](https://golang.org/doc/effective_go)\n\nFor bugs and feature requests, [please create an issue](https://github.com/CS-SI/SafeScale/issues/new/choose).\n\n## Build\n  [See Build file](doc/build/BUILDING.md)\n\n## Usage\n  [See Usage file](doc/USAGE.md)\n\n## License\n\nSafeScale is distributed by [CS Systemes d'Information](http://csgroup.eu) under the [Apache License, Version 2.0](LICENSE). Please see the [third-party notices](NOTICE) file for additional copyright notices and license terms applicable to portions of the software.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcs-si%2Fsafescale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcs-si%2Fsafescale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcs-si%2Fsafescale/lists"}