Skip to content

Commit d726931

Browse files
author
Laurent Grangeau
committed
feat: add nvidia flare demo
chore: fix linting issues feat: add namespace variable and remove environment variable feat: change namespace as variable fix: reviews chore(deps): bump super-linter/super-linter from 7.0.0 to 7.1.0 (#477) Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 7.0.0 to 7.1.0. - [Release notes](https://github.com/super-linter/super-linter/releases) - [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md) - [Commits](super-linter/super-linter@v7.0.0...v7.1.0) --- updated-dependencies: - dependency-name: super-linter/super-linter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> fix!: use an external git repository (#475) - Don't enable the Cloud Source Repositories API. - Don't provision a Cloud Source Repository. - Get the Config Sync Git repository with an input variable. - Let users specify the credentials type to authenticate Config Sync with their repositories. Fix #449 chore: move manifests to workload-pkg folder feat: create nvflare terraform module chore: gitignore terraform stuff (#480) feat: allow config sync to access source repository for synchronization (#479) fix: minor changes to comply with pr review Co-authored-by: Laurent Grangeau <[email protected]> feat: Removing the private DNS zone for CSR feat: enabling HTTP load balancing for ASM feat: add nvflare demo deployment chore: manually build the example container image (#481) Add instructions to build the distributed TensorFlow Federated example in the example README, instead of having Terraform orchestrate the build and push process. This simplifies the root Terraform module, by removing something that's needed only for an example, and it's also unlikely for users to have a build pipeline orchestrated this way. feat: add nvflare demo deployment feat: add nvflare demo feat: refactor to have same extension everywhere feat: add templating of manifest resources feat: add nvflare example fix: lint errors fix: lint errors fix: lint errors
1 parent a187cf5 commit d726931

37 files changed

+549
-266
lines changed

.devcontainer/devcontainer.json

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
{
22
"name": "Python 3",
3-
"image": "ghcr.io/super-linter/super-linter:v7.0.0",
3+
"image": "ghcr.io/super-linter/super-linter:v7.1.0",
44
"customizations": {
55
"vscode": {
66
"settings": {
77
"editor.defaultFormatter": "esbenp.prettier-vscode",
8+
"editor.formatOnSave": true,
9+
"editor.formatOnSaveMode": "file",
810
"editor.wordWrap": "off",
9-
"prettier.resolveGlobalModules": true
11+
"prettier.resolveGlobalModules": true,
12+
"[terraform]": {
13+
"editor.defaultFormatter": "hashicorp.terraform"
14+
},
15+
"[terraform-vars]": {
16+
"editor.defaultFormatter": "hashicorp.terraform"
17+
}
1018
},
1119
"extensions": [
1220
"DavidAnson.vscode-markdownlint",

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,27 @@ super-linter.log
44

55
# GitHub Actions leftovers
66
github_conf
7+
8+
# Terraform gitgnore
9+
# Ref: https://github.com/github/gitignore/blob/main/Terraform.gitignore
10+
11+
# Local .terraform directories
12+
**/.terraform/*
13+
14+
# .tfstate files
15+
*.tfstate
16+
*.tfstate.*
17+
18+
# Crash log files
19+
crash.log
20+
crash.*.log
21+
22+
# Ignore override files as they are usually used to override resources locally and so
23+
# are not checked in
24+
override.tf
25+
override.tf.json
26+
*_override.tf
27+
*_override.tf.json
28+
29+
# Ignore transient lock info files created by terraform apply
30+
.terraform.tfstate.lock.info

README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ To deploy this blueprint you need:
3434
- The `serviceusage.googleapis.com` must be enabled on the project. For more
3535
information about enabling APIs, see
3636
[Enabling and disabling services](https://cloud.google.com/service-usage/docs/enable-disable)
37+
- A Git repository to store the environment configuration.
3738

3839
You create the infastructure using Terraform. The blueprint uses a local [Terraform backend](https://www.terraform.io/docs/language/settings/backends/configuration.html),
3940
but we recommend to configure a [remote backend](https://www.terraform.io/language/settings/backends/configuration#backend-types)
@@ -127,10 +128,16 @@ Users and teams managing tenant apps should not have permissions to change clust
127128
1. Initialize the following Terraform variables:
128129

129130
```hcl
130-
project_id = # Google Cloud project ID where to provision resources with the blueprint.
131-
acm_repository_path = # Path on the host running Terraform to store the GKE descriptors to configure the cluster
131+
project_id = # Google Cloud project ID where to provision resources with the blueprint.
132+
acm_repository_path = # Path on the host running Terraform to store environment configuration
133+
acm_repository_url = # URL of the repository to store environment configuration
134+
acm_secret_type = # Secret type to authenticate with the Config Sync Git repository
135+
acm_source_repository_fqdns = # FQDNs of source repository for Config Sync to allow in the Network Firewall Policy
132136
```
133137

138+
For more information about setting `acm_secret_type`, see
139+
[Grant access to Git](https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/installing-config-sync#git-creds-secret).
140+
134141
If you don't provide all the necessary inputs, Terraform will exit with an
135142
error, and will provide information about the missing inputs. For example,
136143
you can create a Terraform variables initialization file and set inputs there.
@@ -145,6 +152,9 @@ Users and teams managing tenant apps should not have permissions to change clust
145152

146153
The provisioning process may take about 15 minutes to complete.
147154

155+
1. [Grant the Config Sync agent access to the Git repository](https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/installing-config-sync#git-creds-secret)
156+
where the environment configuration will be stored.
157+
148158
1. Wait for the GKE cluster to be reported as ready in the [GKE Kuberentes clusters dashboard](https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards#kubernetes_clusters).
149159

150160
### Next steps
@@ -154,6 +164,7 @@ To familiarize with the environment that you provisioned, you can also deploy
154164
the following examples in the GKE cluster:
155165

156166
- [Distributed TensorFlow Federated training](./examples/federated-learning/tff/distributed-fl-simulation-k8s/README.md)
167+
- [Nvflare training](./examples/federated-learning/tff/nvflare/README.md)
157168

158169
Federated learning is typically split into Cross-silo and Cross-device federated learning. Cross-silo federated computation is where the participating members are organizations or companies, and the number of members is usually small (e.g., within a hundred).
159170

0 commit comments

Comments
 (0)