...

Package iampolicygenerator

import "sigs.k8s.io/kustomize/api/filters/iampolicygenerator"
Overview
Index
Examples

Overview ▾

Package gkesagenerator contains a kio.Filter that that generates a iampolicy-related resources for a given cloud provider

type Filter

type Filter struct {
    IAMPolicyGenerator types.IAMPolicyGeneratorArgs `json:",inline,omitempty" yaml:",inline,omitempty"`
}

Example

Code:

f := Filter{}
var err = yaml.Unmarshal([]byte(`
cloud: gke
kubernetesService: 
  namespace: k8s-namespace
  name: k8s-sa-name
serviceAccount:
  name: gsa-name
  projectId: project-id
`), &f)
if err != nil {
    log.Fatal(err)
}

err = kio.Pipeline{
    Inputs:  []kio.Reader{},
    Filters: []kio.Filter{f},
    Outputs: []kio.Writer{kio.ByteWriter{Writer: os.Stdout}},
}.Execute()
if err != nil {
    log.Fatal(err)
}

Output:

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    iam.gke.io/gcp-service-account: gsa-name@project-id.iam.gserviceaccount.com
  name: k8s-sa-name
  namespace: k8s-namespace

func (Filter) Filter

func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error)

Filter adds a GKE service account object to nodes