nephio-project / nephio

Nephio is a Kubernetes-based automation platform for deploying and managing highly distributed, interconnected workloads such as 5G Network Functions, and the underlying infrastructure on which those workloads depend.
Apache License 2.0
104 stars 53 forks source link

New Porch installation: via ConfigSync `RootSync` #634

Open liamfallon opened 5 months ago

liamfallon commented 5 months ago

Original issue URL: https://github.com/kptdev/kpt/issues/3556 Original issue user: https://github.com/yuwenma Original issue created at: 2022-09-15T00:07:37Z Original issue last updated at: 2022-11-15T22:15:43Z Original issue body: ### Goal To better align with the OSS ConfigSync, users can install Porch by applying a RootSync object. .

UI

Users can write the following RootSync object and let it install Porch.

apiVersion: configsync.gke.io/v1beta1
kind: RootSync
metadata:
  name: porch
  namespace: config-management-system
spec:
  sourceFormat: unstructured
  git:
    repo: https://github.com/GoogleContainerTools/porch/installation
    branch: v0.0.9
    auth: none
kubectl apply -f rootsync.yaml

Porch support

Currently we store the porch artifacts in the corresponding release tag. e.g. git tag porch/v0.0.9 git tag porch/v0.0.8 git tag porch/v0.0.7

The deployment artifacts are allocated in

To support installing porch via ConfigSync, we need to

Original issue comments: Comment user: https://github.com/yuwenma Comment created at: 2022-09-15T00:09:55Z Comment last updated at: 2022-09-15T00:09:55Z Comment body: @mortent @justinsb Would like to hear your insights about this feature requests.

Comment user: https://github.com/mortent Comment created at: 2022-09-15T00:56:18Z Comment last updated at: 2022-09-15T00:56:18Z Comment body: Documenting a way to install porch with Config Sync sounds good. But I'm not sure if it is useful to try to install it directly from the kpt repo. I would think that we should try to publish porch using porch, i.e. we should set up a separate git/oci repo that we can configure as a repo in porch, and then we integrate this with our release tools so that we can publish new versions of porch as a kpt package through porch.

Comment user: https://github.com/yuwenma Comment created at: 2022-09-15T18:44:50Z Comment last updated at: 2022-09-15T18:44:50Z Comment body: > Documenting a way to install porch with Config Sync sounds good. But I'm not sure if it is useful to try to install it directly from the kpt repo. I would think that we should try to publish porch using porch, i.e. we should set up a separate git/oci repo that we can configure as a repo in porch, and then we integrate this with our release tools so that we can publish new versions of porch as a kpt package through porch.

Thank you for the feedback! Yeah, I think eventually our goal is to automate the publishing porch using porch workflow. Currently I'm seeking for an easy and light-weight approach to install Porch in a Config Controller cluster, and the main blocker is that the release branch uses untagged porch images. e.g. in git branch porch/v0.0.9, the image: gcr.io/example-google-project-id/porch-server uses tag latest and I'm expecting v0.0.9

Comment user: https://github.com/rawkode Comment created at: 2022-11-08T14:14:34Z Comment last updated at: 2022-11-08T14:14:34Z Comment body: I'm also looking to automate the installation of Porch with Terraform/Pulumi and it's proving a little difficult because the blueprint is added to each release as a tgz. This requires a lot more boilerplate than really needed.

Would love to see an OCI artifact published for this.

liamfallon commented 3 months ago

@tliron Doesn't Nephio do this? I think we can close this issue.