├── .devcontainer
└── devcontainer.json
├── .gitattributes
├── .github
├── SECURITY.md
└── pull_request_template.md
├── .gitignore
├── ADMINS-FOR-ISTIO.md
├── BRANDING.md
├── BUGS-AND-FEATURE-REQUESTS.md
├── CLA.md
├── CODE-OF-CONDUCT.md
├── CODEOWNERS
├── CONTRIBUTING.md
├── EARLY-DISCLOSURE.md
├── FEATURE-LIFECYCLE-CHECKLIST.md
├── FEATURE-LIFECYCLE.md
├── LICENSE
├── Makefile
├── Makefile.core.mk
├── Makefile.overrides.mk
├── ONBOARDING-TECH-TO-ISTIO.md
├── README.md
├── RELEASE_MANAGERS.md
├── ROLES.md
├── SUPPORT.md
├── TECH-OVERSIGHT-COMMITTEE.md
├── VALUES.md
├── WORKING-GROUP-PROCESSES.md
├── WORKING-GROUPS.md
├── common
├── .commonfiles.sha
├── Makefile.common.mk
├── config
│ ├── .golangci.yml
│ ├── .hadolint.yml
│ ├── .yamllint.yml
│ ├── license-lint.yml
│ ├── mdl.rb
│ ├── sass-lint.yml
│ └── tslint.json
└── scripts
│ ├── check_clean_repo.sh
│ ├── copyright-banner-go.txt
│ ├── fix_copyright_banner.sh
│ ├── format_go.sh
│ ├── gobuild.sh
│ ├── kind_provisioner.sh
│ ├── lint_copyright_banner.sh
│ ├── lint_go.sh
│ ├── metallb-native.yaml
│ ├── report_build_info.sh
│ ├── run.sh
│ ├── setup_env.sh
│ └── tracing.sh
├── go.mod
├── go.sum
├── org
├── README.md
├── admins.yaml
├── config_test.go
├── emeritus.yaml
├── members.yaml
├── repos.yaml
└── teams.yaml
├── prow
└── community-lint.sh
└── steering
├── CHARTER.md
├── CONTRIBUTION-FORMULA.md
├── README.md
└── elections
├── 2020
├── README.md
├── VOTERS.md
├── ceposta.md
├── hzxuzhonghu.md
├── jasonwebb.md
├── jimmysong.md
├── nrjpoddar.md
├── sample-janedoe.md
├── sureshvis.md
└── zackbutcher.md
├── 2021
├── README.md
├── VOTERS.md
├── candidate-hzxuzhonghu.md
├── candidate-linsun.md
├── candidate-nrjpoddar.md
├── candidate-zackbutcher.md
└── nomination-template.md
├── 2022
├── README.md
├── VOTERS.md
├── candidate-ceposta.md
├── candidate-craigbox.md
├── candidate-hzxuzhonghu.md
├── candidate-irisdingbj.md
├── candidate-kfaseela.md
├── candidate-zackbutcher.md
├── election.yaml
├── election_desc.md
├── nomination-template.md
└── voters.yaml
├── 2023
├── README.md
├── candidate-ZackButcher.md
├── candidate-craigbox.md
├── candidate-irisdingbj.md
├── candidate-kebe7jun.md
├── candidate-keithmattix.md
├── candidate-kfaseela.md
├── candidate-linsun.md
├── candidate-therealmitchconnors.md
├── election.yaml
├── election_desc.md
├── nomination-template.md
└── voters.yaml
├── 2025
├── README.md
├── candidate-kfaseela.md
├── candidate-pnambiarsf.md
├── candidate-rcernich.md
├── candidate-wilsonwu.md
├── election.yaml
├── election_desc.md
├── nomination-template.md
└── voters.yaml
├── CODEOWNERS
└── README.md
/.devcontainer/devcontainer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "istio build-tools",
3 | "image": "gcr.io/istio-testing/build-tools:master-6a1c744ef226989e2d5be532282f9098f77877fd",
4 | "privileged": true,
5 | "remoteEnv": {
6 | "USE_GKE_GCLOUD_AUTH_PLUGIN": "True",
7 | "BUILD_WITH_CONTAINER": "0",
8 | "CARGO_HOME": "/home/.cargo",
9 | "RUSTUP_HOME": "/home/.rustup"
10 | },
11 | "features": {
12 | "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {},
13 | "ghcr.io/mpriscella/features/kind:1": {}
14 | },
15 | "customizations": {
16 | "vscode": {
17 | "extensions": [
18 | "golang.go",
19 | "rust-lang.rust-analyzer",
20 | "eamodio.gitlens",
21 | "zxh404.vscode-proto3",
22 | "ms-azuretools.vscode-docker",
23 | "redhat.vscode-yaml",
24 | "IBM.output-colorizer"
25 | ],
26 | "settings": {
27 | "files.eol": "\n",
28 | "go.useLanguageServer": true,
29 | "go.lintTool": "golangci-lint"
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.descriptor linguist-generated=true
2 | *.descriptor -diff -merge
3 | *.descriptor_set linguist-generated=true
4 | *.descriptor_set -diff -merge
5 | *.pb.html linguist-generated=true
6 | *.pb.go linguist-generated=true
7 | *.gen.go linguist-generated=true
8 | *.gen.yaml linguist-generated=true
9 | *.gen.json linguist-generated=true
10 | *_pb2.py linguist-generated=true
11 | manifests/charts/**/profile*.yaml linguist-generated=true
12 | go.sum merge=union
13 | vendor/** linguist-vendored
14 | common/** linguist-vendored
15 | archive/** linquist-vendored
16 | **/vmlinux.h linquist-vendored
17 |
--------------------------------------------------------------------------------
/.github/SECURITY.md:
--------------------------------------------------------------------------------
1 | Refer to [Istio Security Overview](https://github.com/istio/istio/blob/master/.github/SECURITY.md) for more details.
2 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## I want to join the Istio org!
4 |
5 | - [ ] I have reviewed the [community membership guidelines](https://github.com/istio/community/blob/master/ROLES.md#member)
6 | - [ ] I have reviewed the [contribution guidelines](https://github.com/istio/community/blob/master/CONTRIBUTING.md)
7 | - [ ] I have enabled [2FA on my GitHub account](https://github.com/settings/security)
8 | - [ ] I have joined [Istio's Slack workspace](https://slack.istio.io)
9 | - [ ] I have written my company name or "Individual", if not affliated with a company, here: __________
10 | - [ ] I have provided a link to at least one PR that I have successfully pushed to one of the Istio repos, here: __________
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | # Contains the built artifacts
3 | /out/
4 |
--------------------------------------------------------------------------------
/ADMINS-FOR-ISTIO.md:
--------------------------------------------------------------------------------
1 | # Admins for Istio
2 |
3 | This document lists the individuals responsible for the various bits of infrastructure
4 | that support the Istio project. Ping these folks if you experience issues or need special
5 | access.
6 |
7 | | Service | Purpose | Responsible Adults
8 | |---------|---------|-------------------
9 | | [Docker Hub](https://hub.docker.com) | Container registry | [ericvn](https://github.com/ericvn), [costinm](https://github.com/costinm), [howardjohn](https://github.com/howardjohn), [frankbu](https://github.com/frankbu)
10 | | [GitHub](https://github.com/istio) | Source control, bug tracking | [howardjohn](https://github.com/howardjohn), [linsun](https://github.com/linsun), [louiscryan](https://github.com/louiscryan)
11 | | [Google Analytics](https://analytics.google.com/analytics/web/) | Analytics for *istio.io | [craigbox](https://github.com/craigbox)
12 | | [Google Calendar - Community Events](https://calendar.google.com/calendar/embed?src=i10ogf58krfbrsjai5qi16g4do%40group.calendar.google.com&ctz=America%2FLos_Angeles) | Community event scheduling | [macruzbar](https://github.com/macruzbar)
13 | | [Google Calendar - Working Groups](https://calendar.google.com/calendar/embed?src=4uhe8fi8sf1e3tvmvh6vrq2dog%40group.calendar.google.com&ctz=America%2FLos_Angeles) | Working group scheduling | All working group leads
14 | | [Google Cloud DNS](https://cloud.google.com/dns) | DNS hosting for *istio.io | [craigbox](https://github.com/craigbox), [howardjohn](https://github.com/howardjohn)
15 | | [Google Custom Search Engine](https://cse.google.com/cse/) | Search engine for *istio.io | [craigbox](https://github.com/craigbox), [davidhauck](https://github.com/davidhauck)
16 | | [Google Groups](https://googlegroups.com) | Mailing lists | [craigbox](https://github.com/craigbox), [thisisnotapril](https://github.com/thisisnotapril), [louiscryan](https://github.com/louiscryan)
17 | | [Google Search Console](https://search.google.com/search-console/about) | Search engine analytics for *istio.io | [davidhauck](https://github.com/davidhauck)
18 | | [Google Workspace](https://admin.google.com/) | Domain for istio.io Google accounts | [craigbox](https://github.com/craigbox), [justinpettit](https://github.com/justinpettit), [SkyfireFrancisZ](https://github.com/skyfirefrancisz)
19 | | [Netlify](https://netlify.com) | Site hosting for *istio.io | [davidhauck](https://github.com/davidhauck)
20 | | [Prow](https://prow.istio.io) | Primary CI system | [fejta](https://github.com/fetja), [cjwagner](https://github.com/cjwagner)
21 | | [Shared Google Drive](https://drive.google.com/drive/folders/1l_zqgBq_yfc1PfbJiWsFubXBtAz22sau) | Design document storage | [craigbox](https://github.com/craigbox), [justinpettit](https://github.com/justinpettit)
22 | | [Slack](https://istio.slack.com) | Chat platform | [craigbox](https://github.com/craigbox), [linsun](https://github.com/linsun), [louiscryan](https://github.com/louiscryan)
23 | | [Twitter](https://twitter.com/IstioMesh) | Istio Twitter account | [craigbox](https://github.com/craigbox), [linsun](https://github.com/linsun), [kfaseela](https://github.com/kfaseela)
24 | | [YouTube](https://www.youtube.com/c/istio) | Working group videos | [craigbox](https://github.com/craigbox), [SkyfireFrancisZ](https://github.com/skyfirefrancisz)
25 |
--------------------------------------------------------------------------------
/BRANDING.md:
--------------------------------------------------------------------------------
1 | # Istio Brand Guidelines
2 |
3 | The Istio trademark and logos (“Istio Trademarks”) are treated separately from the copyright or patent license grants contained in the Apache-licensed Istio repositories on GitHub. Any use of the Istio Trademarks other than those permitted in these guidelines must be approved in advance.
4 |
5 | ## Purpose of the Brand Guidelines
6 |
7 | Trademarks are used to identify and distinguish one source of goods or services from another, and to make it easier for a user to quickly tell who is behind a particular product or project. These guidelines exist to ensure that the Istio project can share its platform under open source licenses while making sure that the “Istio” brand is protected as a meaningful source identifier in a way that is consistent with trademark law.
8 |
9 |
10 | ## Acceptable Uses
11 |
12 | Given the open nature of Istio, you may use the Istio trademark to refer to the project without prior written permission. Examples of these acceptable references include the following:
13 |
14 | - To refer to the Istio project itself
15 |
16 | - To refer to unmodified source code or other files shared by the Istio repositories on GitHub
17 |
18 | - To accurately identify that your design or implementation is based on or is for use with the Istio platform
19 |
20 | - To discuss the Istio project for educational or informational purposes
21 |
22 | *Acceptable Examples:*
23 |
24 | - “[Your Product/Offering] for Istio”
25 |
26 | - “[XYZ] Conference for Istio Users”
27 |
28 | - “Making [XYZ] better with Istio”
29 |
30 | ## Usage Guidelines
31 |
32 | - The Istio name may not be used or registered in a manner that would cause confusion as to the Istio project’s affiliation or endorsement.
33 |
34 | - Don’t use the Istio name as part of your company name, product name, domain name, or social media profile.
35 |
36 | - Other than as permitted by these guidelines, the Istio name should not be combined with other trademarks, terms, or source identifiers.
37 |
38 | - Don't remove, distort or alter any element of the Istio Trademarks without permission.
39 |
40 | - Do not shorten, abbreviate, or change the spelling of the Istio name.
41 |
42 | - Do not change the color or design elements of the Istio logo, or combine the logo with any other text.
43 |
44 | - Community websites, social media accounts, or other community-organized properties or organizations should follow the naming convention "[XYZ] for Istio Users" or "[XYZ] for Istio Contributors".
45 |
46 | - The name "Istio Working Group" can only be used by approved working groups maintaining code in the Istio GitHub organization under Istio Project governance.
47 |
48 | - If you’re organizing a conference, training, or certification program, you can use the word Istio to refer to the technology that the event or program covers. However, Istio cannot be contained in the title name for your conference or program (such as IstioConf or Certified Istio Administrator) without further explanation. An example of an appropriate usage could be “XYZ Conference for Istio Users” or “XYZ Certification Program for Istio Users” with XYZ being your own brand name. Any related materials should also prominently disclaim any official affiliation with or endorsement by the Istio project.
49 |
50 | - Don’t use the Istio mark prominently on posters, brochures, signs, websites, or other marketing materials to promote your events, products or services without written permission from Istio Steering.
51 |
52 | - Don't use the Istio name or logo to indicate that your design or implementation is endorsed by, or a part of the Istio project without prior written permission.
53 |
54 | *Unacceptable Examples:*
55 |
56 | - “[Company] Istio [Product/Offering]”
57 |
58 | - “[XYZ]Istio”
59 |
60 | - “Istio Day”
61 |
62 | The Istio Steering Committee understands the community need for a conformance standard, which would authorize expanded use of the Istio mark. We plan to implement a conformance standard at a future date, and commit to creating a Conformance Task Force no later than Q4 2021.
63 |
64 | The Istio Steering Committee reserves the right to deny specific use cases if, in the opinion of the Steering Committee, the use case would not be in the best interest of the Istio Community.
65 |
66 |
67 | ## Contact Us
68 |
69 | Please do not hesitate to contact us at [istio-steering@googlegroups.com](mailto:istio-steering@googlegroups.com) if you are unsure whether your intended use of the Istio Trademarks is in compliance with these guidelines, or to ask for permission to use the Istio Trademarks, clearly describing the intended usage and duration.
70 |
--------------------------------------------------------------------------------
/BUGS-AND-FEATURE-REQUESTS.md:
--------------------------------------------------------------------------------
1 | # Bugs and Feature Requests
2 |
3 | You can report bugs and feature requests to the Istio team in one of three places:
4 |
5 | - [Product Bugs and Feature Requests](https://github.com/istio/istio/issues)
6 | - [Documentation Bugs and Feature Requests](https://github.com/istio/istio.io/issues)
7 | - [Community and Governance Issues](https://github.com/istio/community/issues)
8 |
9 | For security vulnerabilities, please don't report a bug (which is public) and instead follow
10 | [these procedures](https://istio.io/about/security-vulnerabilities/).
11 |
--------------------------------------------------------------------------------
/CLA.md:
--------------------------------------------------------------------------------
1 | # The Contributor License Agreement
2 |
3 | The [Cloud Native Computing Foundation](https://www.cncf.io) (CNCF) defines
4 | the legal status of the contributed code in two different types of _Contributor License Agreements_
5 | (CLAs), [individual contributors](https://github.com/cncf/cla/blob/master/individual-cla.pdf) and [corporations](https://github.com/cncf/cla/blob/master/corporate-cla.pdf).
6 |
7 | The Istio project can only accept original source code from CLA signatories.
8 |
9 | It is important to read and understand this legal agreement.
10 |
11 | ## How do I sign?
12 |
13 | After creating your first Pull Request, the `linux-foundation-easycla` bot will respond with information regarding your CLA status along with a link to sign the CLA.
14 |
15 |
16 |
17 | #### 1. Configure your email addresses on GitHub
18 |
19 | If you are signing up as a corporate contributor, ensure that you have linked your corporate email address to your GitHub profile (it doesn't have to be your primary email address for GitHub) or else it can lead to issues with the CLA system.
20 |
21 | For more information, please see [Adding an email address to your GitHub account](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-user-account/managing-email-preferences/adding-an-email-address-to-your-github-account).
22 |
23 | #### 2. Authorize EasyCLA to read some of your GitHub information
24 |
25 |
26 |
27 | - Click on the **Please click here to be authorized** link to navigate to the GitHub Authorize Linux Foundation: EasyCLA page.
28 | - Then click **Authorize LF-Engineering** to give the Linux Foundation read-only access to list the email addresses associated with your GitHub account.
29 |
30 | #### 3. Select from the two types of contributor
31 |
32 |
33 |
34 | After authorizing EasyCLA, you will be redirected to a page to identify which type of contributor you are.
35 | Select the most appropriate option:
36 |
37 | * *Individual Contributor*: You are contributing as yourself, and not as part of another organization.
38 | * *Corporate Contributor*: You are contributing on behalf of your employer or other organization.
39 |
40 | #### 4. Sign the CLA
41 |
42 | Once you select the type of contributor, proceed to Sign the CLA and follow the instructions to complete the signing process through DocuSign.
43 |
44 | After you have filled out the information, Click "Finish" and you will be redirected back to your Pull Request.
45 |
46 | #### 5. Look for an email indicating successful signup.
47 |
48 | > Hello,
49 | >
50 | > This is a notification email from EasyCLA regarding the project Cloud Native Computing > Foundation (CNCF).
51 | >
52 | > The CLA has now been signed. You can download the signed CLA as a PDF here.
53 | >
54 | > If you need help or have questions about EasyCLA, you can read the documentation or reach out to us for support.
55 | >
56 | > Thanks,
57 | > EasyCLA Support Team
58 |
59 | #### 6. Validate your CLA
60 |
61 | Once you are redirected back to your GitHub Pull Request, reply with a comment `/easycla` to update the CLA status of your PR.
62 |
63 | ## Changing your Affiliation
64 |
65 | If you've changed employers and still contribute to Istio, your affiliation
66 | needs to be updated. The CNCF uses [gitdm](https://github.com/cncf/gitdm)
67 | to track who is contributing and from where. Create a pull request on the [gitdm](https://github.com/cncf/gitdm)
68 | repository with a change to the corresponding developer affiliation text file.
69 | Your entry should look similar to this:
70 |
71 | ```
72 | craigbox: craig.box!gmail.com, craigb!armosec.io, craigbox!google.com, craigbox!users.noreply.github.com
73 | Google LLC until 2022-10-18
74 | ARMO from 2022-10-18
75 | ```
76 |
77 | ## Troubleshooting
78 |
79 | If you encounter any problems signing the CLA and need further assistance, log a ticket by [clicking on the "create a support ticket" link](https://jira.linuxfoundation.org/plugins/servlet/desk/portal/4) from the EasyCLA bot's response. Someone from the CNCF will respond to your ticket to help.
80 |
81 | Should you have any issues using the LF Support Site, send a message to the
82 | backup email support address
--------------------------------------------------------------------------------
/CODE-OF-CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Istio Community Code of Conduct
2 |
3 | All members of the Istio community must abide by the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/main/code-of-conduct.md).
4 | Only by respecting each other can we develop a productive, collaborative community.
5 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @istio/steering-committee
2 |
--------------------------------------------------------------------------------
/EARLY-DISCLOSURE.md:
--------------------------------------------------------------------------------
1 | # Early Disclosure of Security Vulnerabilities
2 |
3 | When an Istio security vulnerability is discovered we follow the process outlined in
4 | [Security Vulnerabilities](https://istio.io/about/security-vulnerabilities/) in order to
5 | resolve the issue in a prompt and responsible manner.
6 |
7 | The Istio project maintains a mailing list for private early disclosure of
8 | security vulnerabilities.
9 | The list is used to provide actionable information to close Istio partners.
10 | The list is *NOT* intended for individuals to find out about
11 | security issues.
12 |
13 | Istio has upstream dependencies of its own. In certain situations, we may need to make emergency
14 | Istio releases to address vulnerabilities in these upstream dependencies. Due to embargo policies of
15 | these dependencies, we may not be allowed to share any details about the vulnerabilities. In that
16 | case, Istio's early disclosure will be limited, on a case-by-case basis.
17 | Note that Envoy vulnerabilities are handled slightly differently, see [Membership Criteria](#membership-criteria)
18 |
19 | ## Embargo policy
20 |
21 | The information members receive from the mailing list must not be
22 | made public, shared, nor even hinted at anywhere beyond the need-to-know within
23 | your specific team except with the list's explicit approval. This holds
24 | true until the public disclosure date/time that was agreed upon by the list.
25 | Members of the list and others may not use the information for anything other
26 | than getting the issue fixed for your respective distribution's users.
27 |
28 | Before any information from the list is shared with respective members of your
29 | team required to fix said issue, they must agree to the same terms and only
30 | find out information on a need-to-know basis.
31 |
32 | In the unfortunate event you share the information beyond what is allowed by
33 | this policy, you _must_ urgently inform the mailing list by replying to the
34 | initial disclosure email. The email should specify exactly what information
35 | leaked and to whom. A retrospective will take place after the leak so
36 | we can assess how to not make the same mistake in the future.
37 |
38 | If you continue to leak information and break the policy outlined here, you
39 | will be removed from the early disclosure list.
40 |
41 | ## Membership
42 |
43 | | Email | Organization |
44 | | ------------- |:-------------:|
45 | | tanzu.psirt@broadcom.com | Broadcom |
46 | | istio-security-vulnerability-notifications@google.com | Google |
47 | | argoprod@us.ibm.com | IBM |
48 | | envoy-security@microsoft.com | Microsoft |
49 | | istio-security@redhat.com | RedHat |
50 | | cve@solo.io | Solo.io |
51 | | istio-security@tetrate.io | Tetrate |
52 |
53 | ### Membership criteria
54 |
55 | To be eligible for the early disclosure mailing list, your
56 | organization must:
57 |
58 | 1. Have an actively monitored security email alias for our project. This cannot be a personal
59 | email address, it must be a corporate address owned by the organization.
60 | 2. Be involved in redistributing Istio or have a product with close coupling to Istio.
61 | 3. Have a user base not limited to your own organization.
62 | 4. Be a participant and active contributor in the Istio community.
63 | 5. Accept the [Embargo Policy](#embargo-policy) that is outlined above.
64 | 6. Have a member of your organization be a participant in the Istio Product Security Working Group. This is a private meeting held alternating Wednesdays at 11am Pacific or 3pm Pacific to accommodate a world-wide community. Participants will be expected to actively contribute and fill the roll as security release lead on a quarterly rotational basis.
65 |
66 | #### Removal
67 |
68 | If your organization stops meeting one or more of these criteria
69 | after joining the list then you will be unsubscribed.
70 |
71 | #### Envoy
72 |
73 | Because Istio works closely with Envoy, and is often involved in security vulnerabilities, members of the early disclosure list will inherently gain access to details about embargoed Envoy vulnerability details.
74 | While we do not currently require members to be a part of the [Envoy early disclosure list](https://github.com/envoyproxy/envoy/blob/main/SECURITY.md#members), we do expect that members will follow their embargo guidelines.
75 | Failure to do so, or at the request of the Envoy security team, may result in your removal from the early disclosure list.
76 |
77 | ### Request to join
78 |
79 | New membership requests should be emailed to [istio-security-vulnerability-reports@googlegroups.com](mailto:istio-security-vulnerability-reports@googlegroups.com)
80 |
81 | In the body of your email please specify how you qualify and fulfill each
82 | criterion listed in [Membership criteria](#membership-criteria).
83 |
84 | Here is an example:
85 |
86 | ```
87 | To: istio-security-vulnerability-reports@googlegroups.com
88 | Subject: Seven-Corp Membership to Early Disclosure Mailing List
89 |
90 | Below are each criterion and why I think we, Seven-Corp, qualify.
91 |
92 | > 1. Have an actively monitored security alias email for our project.
93 |
94 | Yes, please subscribe istio-security-team@example.com to the early disclosure
95 | list.
96 |
97 | > 2. Be involved in redistributing Istio or have a product with close coupling to Istio.
98 |
99 | We distribute the "Seven" distribution of Istio [link]. We have been doing
100 | this since 2017.
101 |
102 | > 3. Have a user base not limited to your own organization.
103 |
104 | Our user base spans of the extensive "Seven" community. We have a slack and
105 | GitHub repos and mailing lists where the community hangs out. [links]
106 |
107 | > 4. Be a participant and active contributor in the Istio community.
108 |
109 | Our members, Acidburn, Cereal, and ZeroCool are outstanding members and are well
110 | known throughout the Istio community. Especially for their contributions
111 | in hacking the Gibson.
112 |
113 | > 5. Accept the Embargo Policy that is outlined above.
114 |
115 | We accept.
116 |
117 | > 6. Have a member of your organization be a participant in the Istio Product Security Working Group.
118 |
119 | John/Jane Doe (Email: person@myorganization.com, Istio Slack username: person) will represent our company in the Istio Product Security Working Group.
120 | ```
121 |
122 | Final approval is required from the Istio TOC pending a formal request from the PSWG.
123 |
--------------------------------------------------------------------------------
/FEATURE-LIFECYCLE-CHECKLIST.md:
--------------------------------------------------------------------------------
1 | # Feature Lifecycle Checklist
2 |
3 | This is the checklist describing the essential requirements for a feature to
4 | be labeled as Alpha, Beta, or Stable. Once a feature meets the Alpha label
5 | +criteria, the feature may be included in the
6 | +[feature status page](https://istio.io/about/feature-stages/) on
7 | +[Istio's Website](https://istio.io). This is a shortened version of the full
8 | [Feature Lifecycle](FEATURE-LIFECYCLE.md) document.
9 |
10 | - [Alpha](#alpha)
11 | - [Beta](#beta)
12 | - [Stable](#stable)
13 |
14 | ## Alpha
15 |
16 | A development feature can be officially labeled as Alpha once it meets the following
17 | requirements:
18 |
19 | * Design
20 | * Requires Approved RFC.
21 | * Config
22 | * Requires explicit user action to enable (e.g. a config field, config resource, or installation action).
23 |
24 | * Docs
25 | * Reference docs are published on the Istio wiki.
26 | * Basic feature docs are published on istio.io describing what the feature does, how to use it, and any caveats.
27 |
28 | * Tests
29 | * Automated integration tests cover core use cases with the feature enabled.
30 | * When disabled the feature does not affect system stability or performance.
31 |
32 | * Performance
33 | * Performance impacts have been measured.
34 |
35 | * API
36 | * Initial API review.
37 |
38 | ## Beta
39 |
40 | An Alpha feature can be officially labeled as Beta once it meets the following additional requirements:
41 |
42 | * Design
43 | * Requires Approved Design Doc in order to merge.
44 | * Config
45 | * Can be enabled by default without requiring explicit user action.
46 |
47 | * Docs
48 | * Documentation on istio.io includes performance expectations, may have caveats.
49 | * Documentation on istio.io includes samples/tutorials
50 | * Documentation on istio.io includes appropriate glossary entries
51 |
52 | * Tests
53 | * Integration tests cover feature edge cases
54 | * End-to-end tests cover samples/tutorials
55 | * Fixed issues have tests to prevent regressions
56 |
57 | * Performance
58 | * Feature has baseline performance tests.
59 |
60 | * API
61 | * API has had a thorough API review and is thought to be complete.
62 |
63 | * CLI
64 | * Any necessary CLI commands have been implemented and are complete.
65 |
66 | * Bugs
67 | * Feature has no major known issues
68 |
69 | ## Stable
70 |
71 | A Beta feature can be officially labeled as Stable once it meets the following additional requirements:
72 |
73 | * Tests
74 | * Automated tests are in place to prevent regressions.
75 |
76 | * Performance
77 | * Latency, throughput and scalability are quantified and documented on istio.io.
78 |
79 | * Bugs
80 | * Feature has no major known issues.
81 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
2 | #
3 | # The original version of this file is located in the https://github.com/istio/common-files repo.
4 | # If you're looking at this file in a different repo and want to make a change, please go to the
5 | # common-files repo, make the change there and check it in. Then come back to this repo and run
6 | # "make update-common".
7 |
8 | # Copyright Istio Authors
9 | #
10 | # Licensed under the Apache License, Version 2.0 (the "License");
11 | # you may not use this file except in compliance with the License.
12 | # You may obtain a copy of the License at
13 | #
14 | # http://www.apache.org/licenses/LICENSE-2.0
15 | #
16 | # Unless required by applicable law or agreed to in writing, software
17 | # distributed under the License is distributed on an "AS IS" BASIS,
18 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 | # See the License for the specific language governing permissions and
20 | # limitations under the License.
21 |
22 | SHELL := /usr/bin/env bash
23 |
24 | # allow optional per-repo overrides
25 | -include Makefile.overrides.mk
26 |
27 | # Set the environment variable BUILD_WITH_CONTAINER to use a container
28 | # to build the repo. The only dependencies in this mode are to have make and
29 | # docker. If you'd rather build with a local tool chain instead, you'll need to
30 | # figure out all the tools you need in your environment to make that work.
31 | export BUILD_WITH_CONTAINER ?= 0
32 |
33 | ifeq ($(BUILD_WITH_CONTAINER),1)
34 |
35 | # An export free of arguments in a Makefile places all variables in the Makefile into the
36 | # environment. This is needed to allow overrides from Makefile.overrides.mk.
37 | export
38 |
39 | RUN = ./common/scripts/run.sh
40 |
41 | MAKE_DOCKER = $(RUN) make --no-print-directory -e -f Makefile.core.mk
42 |
43 | %:
44 | @$(MAKE_DOCKER) $@
45 |
46 | default:
47 | @$(MAKE_DOCKER)
48 |
49 | shell:
50 | @$(RUN) /bin/bash
51 |
52 | .PHONY: default shell
53 |
54 | else
55 |
56 | # If we are not in build container, we need a workaround to get environment properly set
57 | # Write to file, then include
58 | $(shell mkdir -p out)
59 | $(shell $(shell pwd)/common/scripts/setup_env.sh envfile > out/.env)
60 | include out/.env
61 | # An export free of arguments in a Makefile places all variables in the Makefile into the
62 | # environment. This behavior may be surprising to many that use shell often, which simply
63 | # displays the existing environment
64 | export
65 |
66 | export GOBIN ?= $(GOPATH)/bin
67 | include Makefile.core.mk
68 |
69 | endif
70 |
--------------------------------------------------------------------------------
/Makefile.core.mk:
--------------------------------------------------------------------------------
1 | # Copyright Istio Authors
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | # lint can run all lint-all targets minus lint-markdown which is run by the community-lint.sh
16 | lint: lint-dockerfiles lint-scripts lint-yaml lint-helm lint-copyright-banner lint-go lint-python lint-sass lint-typescript lint-protos lint-licenses
17 | @prow/community-lint.sh
18 |
19 | test:
20 | go test ./...
21 |
22 | gen: fmt
23 |
24 | fmt: format-go tidy-go
25 |
26 | include common/Makefile.common.mk
--------------------------------------------------------------------------------
/Makefile.overrides.mk:
--------------------------------------------------------------------------------
1 | # Licensed under the Apache License, Version 2.0 (the "License");
2 | # you may not use this file except in compliance with the License.
3 | # You may obtain a copy of the License at
4 | #
5 | # http://www.apache.org/licenses/LICENSE-2.0
6 | #
7 | # Unless required by applicable law or agreed to in writing, software
8 | # distributed under the License is distributed on an "AS IS" BASIS,
9 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 | # See the License for the specific language governing permissions and
11 | # limitations under the License.
12 |
13 | # this repo is on the container plan by default
14 | BUILD_WITH_CONTAINER ?= 1
15 |
--------------------------------------------------------------------------------
/ONBOARDING-TECH-TO-ISTIO.md:
--------------------------------------------------------------------------------
1 | # Onboarding Technologies to Istio
2 |
3 | On occasion, we encounter situations where software developed outside of the scope of the Istio project has
4 | sufficient alignment with the main Istio mission that it should become an integral part of Istio proper.
5 |
6 | This document describes a set of requirements that must be satisfied before externally developed software can
7 | be folded into the Istio project.
8 |
9 | ## Forms of Integration
10 |
11 | Externally developed software can be integrated into the Istio project in a number of ways, falling into three broad categories:
12 |
13 | * **Augment**. Represents changes and additions to the main code base to introduce small new features and capabilities. These changes would typically
14 | be introduced as normal PRs into the existing Istio repository, possibly within a feature branch.
15 |
16 | * **Extend**. Represents bigger changes to the platform, including the addition of new components. An example of this could be introducing a standard
17 | Open Service Broker implementation for Istio. This type of change would typically be added in a subdirectory of the main Istio repo, and introduced via
18 | a feature branch. Technologies of this type are subject to Istio's normal release cadence.
19 |
20 | * **Support**. Represents functionality that is peripheral to the main Istio product. These tools and other binaries can be added as
21 | standalone repositories within the Istio GitHub organization. Technologies of this type may be have a different release cadence than
22 | the Istio's normal release cadence.
23 |
24 | ## Prerequisites
25 |
26 | * Based on technical merits and alignment, the TOC must agree to the integration, must establish the proper form of integration, and must determine the overall protocol to follow (feature branch vs. master branch, timeline, testing requirements, doc requirements, etc).
27 |
28 | * Contributors of the new technology must be owners of the copyright of all subject material.
29 |
30 | * The transitive dependencies for **Augment** and **Extend** integrations must all use one of the supported Istio dependency license types
31 | (Apache, MIT, and BSD). **Support** integrations can have dependencies with additional license types (TBD: enumerate which ones)
32 |
33 | * Copyright for all contributed material must be explicitly assigned in the source code to "Istio Authors" and must be licensed under the Apache license.
34 |
35 | * Contributors must agree to whatever CLA the Istio project is currently subject to.
36 |
37 | * Contributors must agree to supply the initial documentation for the technology to or to Istio’s developer wiki on GitHub, as appropriate.
38 |
39 | * Contributors must agree to supply test suites that ensure the new technology functions properly and meets Istio’s testing and quality standards.
40 |
41 | * Contributors must agree to update the technology's API surface to comply with Istio’s overall design guidelines.
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Istio Community
2 |
3 | Welcome to the Istio community!
4 |
5 | This is the starting point for becoming a contributor - improving code, improving docs, giving talks, etc.
6 |
7 | - [Introduction](#introduction)
8 | - [Istio authors](#istio-authors)
9 | - [Community meeting](#community-meeting)
10 | - [How can I help?](#how-can-i-help)
11 | - [Questions and issues](#questions-and-issues)
12 |
13 | Other Documents
14 |
15 | - [Contributing to Istio](CONTRIBUTING.md) - guidelines and advice on becoming a contributor
16 | - [Working Groups](WORKING-GROUPS.md) - describes our various working groups
17 | - [Working Group Processes](WORKING-GROUP-PROCESSES.md) - describes how working groups operate
18 | - [Technical Oversight Committee](TECH-OVERSIGHT-COMMITTEE.md) - describes our technical oversight committee
19 | - [Steering Committee](steering/) - describes our steering committee
20 | - [Community Roles](ROLES.md) - describes the roles individuals can assume within the Istio community
21 | - [Onboarding Technologies to Istio](ONBOARDING-TECH-TO-ISTIO.md) - how we work to onboard new technologies to the Istio project
22 | - [Feature Lifecycle](FEATURE-LIFECYCLE.md) - requirements for features to be labeled Alpha, Beta, or Stable
23 | - [Feature Lifecycle Checklist](FEATURE-LIFECYCLE-CHECKLIST.md) - checklist-form of requirements for features to be labeled Alpha, Beta, or Stable
24 | - [Admins for Istio Stuff](ADMINS-FOR-ISTIO.md) - lists who handles which part of the Istio infrastructure
25 | - [Early Disclosure for Security Vulnerabilities](EARLY-DISCLOSURE.md) - getting early notification of security vulnerabilities
26 |
27 | ## Introduction
28 |
29 | Istio is an open platform for providing a uniform way to integrate
30 | microservices, manage traffic flow across microservices, enforce policies
31 | and aggregate telemetry data. Istio's control plane provides an abstraction
32 | layer over the underlying cluster management platform, such as Kubernetes,
33 | Mesos, etc.
34 |
35 | Visit [istio.io](https://istio.io) for in-depth information about using Istio.
36 |
37 | ## Istio authors
38 | Istio is an open-source project with an active development community. The project was started
39 | by teams from Google and IBM, in partnership with the Envoy team at Lyft.
40 |
41 | ## Community Meeting
42 |
43 | We have public, [recorded](https://www.youtube.com/channel/UC-zVlo1F3mUbExQ96fABWcQ), community meetings.
44 | They happen on the fourth Thursday of every month at 10 AM US/Pacific. [Map that to your local time](https://time.is/compare/1000_in_San_Francisco,_California).
45 |
46 | [Join this group](https://groups.google.com/forum/#!forum/istio-community-video-meetings)
47 | to have the meetings automatically added to your calendar.
48 | You can also find them on [the community calendar](https://calendar.google.com/calendar/embed?src=i10ogf58krfbrsjai5qi16g4do%40group.calendar.google.com&ctz=America%2FLos_Angeles), along with other major community events.
49 |
50 | Meeting agendas and notes can be accessed in the [working doc](http://bit.ly/istiocommunitymeet).
51 |
52 | Interested in presenting? Please send your abstract to istio-steering@googlegroups.com.
53 | This is the information we need from you:
54 |
55 | * Name
56 | * Role and Company
57 | * Short Speaker Bio
58 | * Talk title and a short abstract
59 | * Talk Format(Presentation/Demo) and Session Length
60 | * Email to connect
61 |
62 | Suitable content:
63 |
64 | * Istio new feature releases and project updates
65 | * Tutorials and demos
66 | * Use cases
67 | * Open source content that relates vendor or platform to Istio installation and use
68 |
69 | Unsuitable content
70 |
71 | * Demos that are disparaging to the Istio project, its functionality or community
72 | * Demos that do not address Istio in any way, including interacting with Istio APIs or interfaces
73 | * Blatant vendor pitches
74 |
75 | ## How can I help?
76 |
77 | See our [community page](https://istio.io/about/community/) for ways to get involved
78 | in our community.
79 |
80 | To dig deeper, check out the [architecture](https://istio.io/latest/docs/ops/deployment/architecture/)
81 | and read some [design docs](./CONTRIBUTING.md#design-documents).
82 |
83 | If you're looking for something to do to get your feet wet working on Istio, look for GitHub issues
84 | marked with the Help Wanted label:
85 |
86 | - [Primary Istio repo](https://github.com/istio/istio/issues?q=is%3Aopen+is%3Aissue+label%3A%22community%2Fhelp+wanted%22)
87 | - [Documentation repo](https://github.com/istio/istio.io/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
88 |
89 | Of course, even if there's not an issue opened for it, we can always use more
90 | testing throughout the platform. Similarly, we can always use more docs, richer docs,
91 | and insightful docs. Or maybe a cool blog post?
92 |
93 | ## Questions and issues
94 |
95 | If you've got questions or issues with using Istio, check our [discussion board](https://github.com/istio/istio/discussions)
96 | and be sure to connect to our [community](https://istio.io/about/community/) where there's always
97 | someone ready to lend a hand.
98 |
99 | If you're a developer trying to hack on or use the Istio code, head to
100 | #contributors on the [Istio Slack](https://slack.istio.io/) for help.
101 |
--------------------------------------------------------------------------------
/RELEASE_MANAGERS.md:
--------------------------------------------------------------------------------
1 | # Current Release Managers
2 |
3 | ## 1.20
4 |
5 | * [Aryan Gupta](https://github.com/aryan16)
6 | * [Xiaopeng Han](https://github.com/hanxiaop)
7 |
8 | ## 1.19
9 |
10 | * [Aryan Gupta](https://github.com/aryan16)
11 | * [Xiaopeng Han](https://github.com/hanxiaop)
12 | * [Kalya Subramanian](https://github.com/ksubrmnn)
13 |
14 | ## 1.18
15 |
16 | * [Xiaopeng Han](https://github.com/hanxiaop)
17 | * [Kalya Subramanian](https://github.com/ksubrmnn)
18 | * [Paul Merrison](https://github.com/pmerrison)
19 |
20 | ## 1.17
21 |
22 | * [Mariam John](https://github.com/johnma14)
23 | * [Kalya Subramanian](https://github.com/ksubrmnn)
24 | * [Paul Merrison](https://github.com/pmerrison)
25 |
26 | # Emeritus Members
27 |
28 | We would like to acknowledge previous release managers for their contribution to
29 | the success of the Istio community:
30 |
31 | ## 1.16
32 |
33 | * [Daniel Hawton](https://github.com/dhawton)
34 | * [Ziyang Xiao](https://github.com/ZiyangXiao)
35 | * [Mariam John](https://github.com/johnma14)
36 |
37 | ## 1.15
38 |
39 | * [Sam Naser](https://github.com/Monkeyanator)
40 | * [Daniel Hawton](https://github.com/dhawton)
41 | * [Ziyang Xiao](https://github.com/ZiyangXiao)
42 |
43 | ## 1.14
44 |
45 | * [Greg Hanson](https://github.com/GregHanson)
46 | * [Lei Tang](https://github.com/lei-tang)
47 |
48 | ## 1.13
49 |
50 | * [Steven Landow](https://github.com/stevenctl)
51 | * [Lei Tang](https://github.com/lei-tang)
52 |
53 | ## 1.12
54 |
55 | * [Kenan O'Neal](https://github.com/jacob-delgado)
56 | * [Daniel Grim](https://github.com/dgn)
57 |
58 | ## 1.11
59 |
60 | * [Jonh Wendell](https://github.com/jwendell)
61 | * [Ryan King](https://github.com/ryantking)
62 | * [Steve Zhang](https://github.com/zhlsunshine)
63 |
64 | ## 1.10
65 |
66 | * [Sam Naser](https://github.com/Monkeyanator)
67 | * [Zhihan Zhang](https://github.com/ZhiHanZ)
68 |
69 | ## 1.9
70 |
71 | * [Jacob Delgado](https://github.com/jacob-delgado)
72 | * [Shamsher Ansari](https://github.com/shamsher31)
73 | * [Steven Landow](https://github.com/stevenctl)
74 | ## 1.8
75 |
76 | * [Pengyuan Bian](https://github.com/bianpengyuan)
77 | * [Greg Hanson](https://github.com/GregHanson)
78 |
79 | ## 1.7
80 |
81 | * [Cynthia Coan](https://github.com/Mythra)
82 | * [Jimmy Chen](https://github.com/JimmyCYJ)
83 | * [Jonh Wendell](https://github.com/jwendell)
84 |
85 | ## 1.6
86 |
87 | * [Jacob Delgado](https://github.com/jacob-delgado)
88 | * [Iris Ding](https://github.com/irisdingbj)
89 | * [Brian Avery](https://github.com/brian-avery)
90 |
91 | ## 1.5
92 |
93 | * [Daniel Grimm](https://github.com/dgn)
94 | * [Francois Pesce](https://github.com/fpesce)
95 | * [Eric Van Norman](https://github.com/ericvn)
96 | * [Mariam John](https://github.com/johnma14)
97 |
98 | ## 1.4
99 |
100 | * [Jonh Wendell](https://github.com/jwendell)
101 | * [John Howard](https://github.com/howardjohn)
102 | * [Eric Van Norman](https://github.com/ericvn)
103 |
104 | ## 1.3
105 |
106 | * [Steve Dake](https://github.com/sdake)
107 | * [Brian Avery](https://github.com/brian-avery)
108 | * [Romain Lenglet](https://github.com/rlenglet)
109 |
110 | ## 1.2
111 |
112 | * [Francois Pesce](https://github.com/fpesce)
113 | * [Lin Sun](https://github.com/linsun)
114 |
115 | ## 1.1
116 |
117 | * [Josh Blatt](https://github.com/duderino)
118 |
--------------------------------------------------------------------------------
/SUPPORT.md:
--------------------------------------------------------------------------------
1 | # Support
2 |
3 | Here are some resources to help you understand and use Istio:
4 |
5 | - For in-depth information about how to use Istio, visit [istio.io](https://istio.io)
6 | - To ask questions and get assistance from our community, visit [GitHub Discussions](https://github.com/istio/istio/discussions)
7 | - To learn how to participate in our overall community, visit [our community page](https://istio.io/latest/get-involved/)
8 |
--------------------------------------------------------------------------------
/VALUES.md:
--------------------------------------------------------------------------------
1 | # Istio Team Values
2 |
3 | We want to make sure every member has a shared understanding of the goals and
4 | values we hold as a team:
5 |
6 | - Know your customer. Try to learn about what your customers care about, how they think about it. Design for them, not for you.
7 |
8 | - Optimize for the **overall project**, not your own area or feature
9 | - A shortcut for one individual can mean a lot of extra work or disruption for
10 | the rest of the team.
11 |
12 | - Our repos should always be in release shape: **Always Green**
13 | - This lets us move faster in the mid and long term
14 | - This implies investments in build/test infrastructure to have fast, reliable
15 | tests to ensure that we can release at any time.
16 | - Extra discipline may require more work by individuals to keep the build in
17 | good state, but less work overall for the team.
18 |
19 | - Be **specific**, **respectful** and **courteous**
20 | - Disagreements are expected, but don't use broad
21 | generalizations, exaggerations, or judgement words that can be taken
22 | personally. Consider other people’s perspectives (including the wide range of
23 | use for Istio). Empathize with our users. Focus on the specific
24 | issue at hand, and remember that we all care about the project, first and
25 | foremost.
26 | - Emails to the [mailing lists](CONTRIBUTING.md#contributing-a-feature),
27 | document comments, or meetings are often better and higher bandwidth ways to
28 | communicate complex and nuanced design issues, as opposed to protracted
29 | heated live chats.
30 | - Be mindful of the terminology you are using, it may not be the same as
31 | someone else's and cause misunderstanding. To promote clear and precise
32 | communication, please define the terms you are using in context.
33 |
34 | - Raising issues is great, suggesting solutions is even better
35 | - Think of a proposed alternative and improvement rather than just what you
36 | perceive as wrong.
37 | - If you have no immediate solution even after thinking about it - if
38 | something does seem significant, do raise it to someone that may be able to
39 | also think of solutions or to the group (don’t stay frustrated! Feel safe
40 | in bringing up issues)
41 | - Avoid rehashing old issues that have been already resolved/decided (unless
42 | you have new insights or information)
43 |
44 | - Be productive and **happy**, and most importantly, have _fun_ :-)
45 |
--------------------------------------------------------------------------------
/common/.commonfiles.sha:
--------------------------------------------------------------------------------
1 | 2dfbf3bcd0b3c217b5d8a285472cabf492f8eae3
2 |
--------------------------------------------------------------------------------
/common/Makefile.common.mk:
--------------------------------------------------------------------------------
1 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
2 | #
3 | # The original version of this file is located in the https://github.com/istio/common-files repo.
4 | # If you're looking at this file in a different repo and want to make a change, please go to the
5 | # common-files repo, make the change there and check it in. Then come back to this repo and run
6 | # "make update-common".
7 |
8 | # Copyright Istio Authors
9 | #
10 | # Licensed under the Apache License, Version 2.0 (the "License");
11 | # you may not use this file except in compliance with the License.
12 | # You may obtain a copy of the License at
13 | #
14 | # http://www.apache.org/licenses/LICENSE-2.0
15 | #
16 | # Unless required by applicable law or agreed to in writing, software
17 | # distributed under the License is distributed on an "AS IS" BASIS,
18 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 | # See the License for the specific language governing permissions and
20 | # limitations under the License.
21 |
22 | FINDFILES=find . \( -path ./common-protos -o -path ./.git -o -path ./out -o -path ./.github -o -path ./licenses -o -path ./vendor $(if $(strip ${FINDFILES_IGNORE}), -o ${FINDFILES_IGNORE}) \) -prune -o -type f
23 |
24 | XARGS = xargs -0 -r
25 |
26 | lint-dockerfiles:
27 | @${FINDFILES} -name 'Dockerfile*' -print0 | ${XARGS} hadolint -c ./common/config/.hadolint.yml
28 |
29 | lint-scripts:
30 | @${FINDFILES} -name '*.sh' -print0 | ${XARGS} -n 256 shellcheck
31 |
32 | lint-yaml:
33 | @${FINDFILES} \( -name '*.yml' -o -name '*.yaml' \) -not -exec grep -q -e "{{" {} \; -print0 | ${XARGS} yamllint -c ./common/config/.yamllint.yml
34 |
35 | lint-helm:
36 | @${FINDFILES} -name 'Chart.yaml' -print0 | ${XARGS} -L 1 dirname | xargs -r helm lint --strict
37 |
38 | lint-copyright-banner:
39 | @${FINDFILES} \( -name '*.go' -o -name '*.cc' -o -name '*.h' -o -name '*.proto' -o -name '*.py' -o -name '*.sh' -o -name '*.rs' \) \( ! \( -name '*.gen.go' -o -name '*.pb.go' -o -name '*_pb2.py' \) \) -print0 |\
40 | ${XARGS} common/scripts/lint_copyright_banner.sh
41 |
42 | fix-copyright-banner:
43 | @${FINDFILES} \( -name '*.go' -o -name '*.cc' -o -name '*.h' -o -name '*.proto' -o -name '*.py' -o -name '*.sh' -o -name '*.rs' \) \( ! \( -name '*.gen.go' -o -name '*.pb.go' -o -name '*_pb2.py' \) \) -print0 |\
44 | ${XARGS} common/scripts/fix_copyright_banner.sh
45 |
46 | lint-go:
47 | @${FINDFILES} -name '*.go' \( ! \( -name '*.gen.go' -o -name '*.pb.go' \) \) -print0 | ${XARGS} common/scripts/lint_go.sh
48 |
49 | lint-python:
50 | @${FINDFILES} -name '*.py' \( ! \( -name '*_pb2.py' \) \) -print0 | ${XARGS} autopep8 --max-line-length 160 --exit-code -d
51 |
52 | lint-markdown:
53 | @${FINDFILES} -name '*.md' -not -path './manifests/addons/dashboards/*' -print0 | ${XARGS} mdl --ignore-front-matter --style common/config/mdl.rb
54 |
55 | lint-links:
56 | @${FINDFILES} -name '*.md' -print0 | ${XARGS} awesome_bot --skip-save-results --allow_ssl --allow-timeout --allow-dupe --allow-redirect --white-list ${MARKDOWN_LINT_ALLOWLIST}
57 |
58 | lint-sass:
59 | @${FINDFILES} -name '*.scss' -print0 | ${XARGS} sass-lint -c common/config/sass-lint.yml --verbose
60 |
61 | lint-typescript:
62 | @${FINDFILES} -name '*.ts' -print0 | ${XARGS} tslint -c common/config/tslint.json
63 |
64 | lint-licenses:
65 | @if test -d licenses; then license-lint --config common/config/license-lint.yml; fi
66 |
67 | lint-all: lint-dockerfiles lint-scripts lint-yaml lint-helm lint-copyright-banner lint-go lint-python lint-markdown lint-sass lint-typescript lint-licenses
68 |
69 | tidy-go:
70 | @find -name go.mod -execdir go mod tidy \;
71 |
72 | mod-download-go:
73 | @-GOFLAGS="-mod=readonly" find -name go.mod -execdir go mod download \;
74 | # go mod tidy is needed with Golang 1.16+ as go mod download affects go.sum
75 | # https://github.com/golang/go/issues/43994
76 | @find -name go.mod -execdir go mod tidy \;
77 |
78 | format-go: tidy-go
79 | @${FINDFILES} -name '*.go' \( ! \( -name '*.gen.go' -o -name '*.pb.go' \) \) -print0 | ${XARGS} common/scripts/format_go.sh
80 |
81 | format-python:
82 | @${FINDFILES} -name '*.py' -print0 | ${XARGS} autopep8 --max-line-length 160 --aggressive --aggressive -i
83 |
84 | dump-licenses: mod-download-go
85 | @license-lint --config common/config/license-lint.yml --report
86 |
87 | dump-licenses-csv: mod-download-go
88 | @license-lint --config common/config/license-lint.yml --csv
89 |
90 | mirror-licenses: mod-download-go
91 | @rm -fr licenses
92 | @license-lint --mirror
93 |
94 | TMP := $(shell mktemp -d -u)
95 | UPDATE_BRANCH ?= "master"
96 |
97 | BUILD_TOOLS_ORG ?= "istio"
98 |
99 | update-common:
100 | @mkdir -p $(TMP)
101 | @git clone -q --depth 1 --single-branch --branch $(UPDATE_BRANCH) https://github.com/$(BUILD_TOOLS_ORG)/common-files $(TMP)/common-files
102 | @cd $(TMP)/common-files ; git rev-parse HEAD >files/common/.commonfiles.sha
103 | @rm -fr common
104 | # istio/community has its own CONTRIBUTING.md file.
105 | @CONTRIB_OVERRIDE=$(shell grep -l "istio/community/blob/master/CONTRIBUTING.md" CONTRIBUTING.md)
106 | @if [ "$(CONTRIB_OVERRIDE)" != "CONTRIBUTING.md" ]; then\
107 | rm $(TMP)/common-files/files/CONTRIBUTING.md;\
108 | fi
109 | @cp -a $(TMP)/common-files/files/* $(TMP)/common-files/files/.devcontainer $(TMP)/common-files/files/.gitattributes $(shell pwd)
110 | @rm -fr $(TMP)/common-files
111 | @if [ "$(AUTOMATOR_REPO)" == "proxy" ]; then\
112 | sed -i -e 's/build-tools:/build-tools-proxy:/g' .devcontainer/devcontainer.json;\
113 | fi
114 | @$(or $(COMMONFILES_POSTPROCESS), true)
115 |
116 | check-clean-repo:
117 | @common/scripts/check_clean_repo.sh
118 |
119 | tidy-docker:
120 | @docker image prune --all --force --filter="label=io.istio.repo=https://github.com/istio/tools" --filter="label!=io.istio.version=$(IMAGE_VERSION)"
121 |
122 | # help works by looking over all Makefile includes matching `target: ## comment` regex and outputting them
123 | help: ## Show this help
124 | @egrep -h '^[a-zA-Z_\.-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
125 |
126 | .PHONY: lint-dockerfiles lint-scripts lint-yaml lint-copyright-banner lint-go lint-python lint-helm lint-markdown lint-sass lint-typescript lint-all format-go format-python update-common lint-licenses dump-licenses dump-licenses-csv check-clean-repo tidy-docker help tidy-go mod-download-go
127 |
--------------------------------------------------------------------------------
/common/config/.golangci.yml:
--------------------------------------------------------------------------------
1 | version: "2"
2 | run:
3 | build-tags:
4 | - integ
5 | - integfuzz
6 | linters:
7 | default: none
8 | enable:
9 | - copyloopvar
10 | - depguard
11 | - errcheck
12 | - gocritic
13 | - gosec
14 | - govet
15 | - ineffassign
16 | - lll
17 | - misspell
18 | - revive
19 | - staticcheck
20 | - unconvert
21 | - unparam
22 | - unused
23 | settings:
24 | depguard:
25 | rules:
26 | DenyGogoProtobuf:
27 | files:
28 | - $all
29 | deny:
30 | - pkg: github.com/gogo/protobuf
31 | desc: gogo/protobuf is deprecated, use golang/protobuf
32 | errcheck:
33 | check-type-assertions: false
34 | check-blank: false
35 | gocritic:
36 | disable-all: true
37 | enabled-checks:
38 | - appendCombine
39 | - argOrder
40 | - assignOp
41 | - badCond
42 | - boolExprSimplify
43 | - builtinShadow
44 | - captLocal
45 | - caseOrder
46 | - codegenComment
47 | - commentedOutCode
48 | - commentedOutImport
49 | - defaultCaseOrder
50 | - deprecatedComment
51 | - docStub
52 | - dupArg
53 | - dupBranchBody
54 | - dupCase
55 | - dupSubExpr
56 | - elseif
57 | - emptyFallthrough
58 | - equalFold
59 | - flagDeref
60 | - flagName
61 | - hexLiteral
62 | - indexAlloc
63 | - initClause
64 | - methodExprCall
65 | - nilValReturn
66 | - octalLiteral
67 | - offBy1
68 | - rangeExprCopy
69 | - regexpMust
70 | - sloppyLen
71 | - stringXbytes
72 | - switchTrue
73 | - typeAssertChain
74 | - typeSwitchVar
75 | - typeUnparen
76 | - underef
77 | - unlambda
78 | - unnecessaryBlock
79 | - unslice
80 | - valSwap
81 | - weakCond
82 | gosec:
83 | includes:
84 | - G401
85 | - G402
86 | - G404
87 | govet:
88 | disable:
89 | - shadow
90 | lll:
91 | line-length: 160
92 | tab-width: 1
93 | misspell:
94 | locale: US
95 | ignore-rules:
96 | - cancelled
97 | revive:
98 | confidence: 0
99 | severity: warning
100 | rules:
101 | - name: blank-imports
102 | - name: context-keys-type
103 | - name: time-naming
104 | - name: var-declaration
105 | - name: unexported-return
106 | - name: errorf
107 | - name: context-as-argument
108 | - name: dot-imports
109 | - name: error-return
110 | - name: error-strings
111 | - name: error-naming
112 | - name: increment-decrement
113 | - name: var-naming
114 | - name: package-comments
115 | - name: range
116 | - name: receiver-naming
117 | - name: indent-error-flow
118 | - name: superfluous-else
119 | - name: modifies-parameter
120 | - name: unreachable-code
121 | - name: struct-tag
122 | - name: constant-logical-expr
123 | - name: bool-literal-in-expr
124 | - name: redefines-builtin-id
125 | - name: imports-blocklist
126 | - name: range-val-in-closure
127 | - name: range-val-address
128 | - name: waitgroup-by-value
129 | - name: atomic
130 | - name: call-to-gc
131 | - name: duplicated-imports
132 | - name: string-of-int
133 | - name: defer
134 | arguments:
135 | - - call-chain
136 | - name: unconditional-recursion
137 | - name: identical-branches
138 | unparam:
139 | check-exported: false
140 | exclusions:
141 | generated: lax
142 | presets:
143 | - comments
144 | - common-false-positives
145 | - legacy
146 | - std-error-handling
147 | rules:
148 | - linters:
149 | - errcheck
150 | - maligned
151 | path: _test\.go$|tests/|samples/
152 | - path: _test\.go$
153 | text: 'dot-imports: should not use dot imports'
154 | - linters:
155 | - staticcheck
156 | text: 'SA1019: package github.com/golang/protobuf/jsonpb'
157 | - linters:
158 | - staticcheck
159 | text: 'SA1019: "github.com/golang/protobuf/jsonpb"'
160 | - linters:
161 | - staticcheck
162 | text: 'SA1019: grpc.Dial is deprecated: use NewClient instead'
163 | - linters:
164 | - staticcheck
165 | text: 'SA1019: grpc.DialContext is deprecated: use NewClient instead'
166 | - linters:
167 | - staticcheck
168 | text: 'SA1019: grpc.WithBlock is deprecated'
169 | - linters:
170 | - staticcheck
171 | text: 'SA1019: grpc.FailOnNonTempDialError'
172 | - linters:
173 | - staticcheck
174 | text: 'SA1019: grpc.WithReturnConnectionError'
175 | - path: (.+)\.go$
176 | text: composite literal uses unkeyed fields
177 | # TODO: remove following rule in the future
178 | - linters:
179 | - staticcheck
180 | text: 'QF'
181 | - linters:
182 | - staticcheck
183 | text: 'ST1005'
184 | - linters:
185 | - staticcheck
186 | text: 'S1007'
187 | paths:
188 | - .*\.pb\.go
189 | - .*\.gen\.go
190 | - genfiles$
191 | - vendor$
192 | - third_party$
193 | - builtin$
194 | - examples$
195 | issues:
196 | max-issues-per-linter: 0
197 | max-same-issues: 0
198 | formatters:
199 | enable:
200 | - gci
201 | - gofumpt
202 | - goimports
203 | settings:
204 | gci:
205 | sections:
206 | - standard
207 | - default
208 | - prefix(istio.io/)
209 | goimports:
210 | local-prefixes:
211 | - istio.io/
212 | exclusions:
213 | generated: lax
214 | paths:
215 | - .*\.pb\.go
216 | - .*\.gen\.go
217 | - genfiles$
218 | - vendor$
219 | - third_party$
220 | - builtin$
221 | - examples$
222 |
--------------------------------------------------------------------------------
/common/config/.hadolint.yml:
--------------------------------------------------------------------------------
1 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
2 | #
3 | # The original version of this file is located in the https://github.com/istio/common-files repo.
4 | # If you're looking at this file in a different repo and want to make a change, please go to the
5 | # common-files repo, make the change there and check it in. Then come back to this repo and run
6 | # "make update-common".
7 |
8 | ignored:
9 | - DL3008
10 | - DL3059
11 |
12 | trustedRegistries:
13 | - gcr.io
14 | - docker.io
15 | - quay.io
16 | - "*.pkg.dev"
17 | - "cgr.dev"
18 |
--------------------------------------------------------------------------------
/common/config/.yamllint.yml:
--------------------------------------------------------------------------------
1 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
2 | #
3 | # The original version of this file is located in the https://github.com/istio/common-files repo.
4 | # If you're looking at this file in a different repo and want to make a change, please go to the
5 | # common-files repo, make the change there and check it in. Then come back to this repo and run
6 | # "make update-common".
7 |
8 | rules:
9 | braces: disable
10 | brackets: disable
11 | colons: enable
12 | commas: disable
13 | comments: disable
14 | comments-indentation: disable
15 | document-end: disable
16 | document-start: disable
17 | empty-lines: disable
18 | empty-values: disable
19 | hyphens: enable
20 | indentation: disable
21 | key-duplicates: enable
22 | key-ordering: disable
23 | line-length: disable
24 | new-line-at-end-of-file: disable
25 | new-lines: enable
26 | octal-values: disable
27 | quoted-strings: disable
28 | trailing-spaces: disable
29 | truthy: disable
30 |
--------------------------------------------------------------------------------
/common/config/license-lint.yml:
--------------------------------------------------------------------------------
1 | unrestricted_licenses:
2 | - Apache-2.0
3 | - CC-BY-3.0
4 | - ISC
5 | - AFL-2.1
6 | - AFL-3.0
7 | - Artistic-1.0
8 | - Artistic-2.0
9 | - Apache-1.1
10 | - BSD-1-Clause
11 | - BSD-2-Clause
12 | - BSD-3-Clause
13 | - 0BSD
14 | - FTL
15 | - LPL-1.02
16 | - MS-PL
17 | - MIT
18 | - NCSA
19 | - OpenSSL
20 | - PHP-3.0
21 | - TCP-wrappers
22 | - W3C
23 | - Xnet
24 | - Zlib
25 |
26 | reciprocal_licenses:
27 | - CC0-1.0
28 | - APSL-2.0
29 | - CDDL-1.0
30 | - CDDL-1.1
31 | - CPL-1.0
32 | - EPL-1.0
33 | - IPL-1.0
34 | - MPL-1.0
35 | - MPL-1.1
36 | - MPL-2.0
37 | - MPL-2.0-no-copyleft-exception
38 | - Ruby
39 |
40 | restricted_licenses:
41 | - GPL-1.0-only
42 | - GPL-1.0-or-later
43 | - GPL-2.0-only
44 | - GPL-2.0-or-later
45 | - GPL-3.0-only
46 | - GPL-3.0-or-later
47 | - LGPL-2.0-only
48 | - LGPL-2.0-or-later
49 | - LGPL-2.1-only
50 | - LGPL-2.1-or-later
51 | - LGPL-3.0-only
52 | - LGPL-3.0-or-later
53 | - NPL-1.0
54 | - NPL-1.1
55 | - OSL-1.0
56 | - OSL-1.1
57 | - OSL-2.0
58 | - OSL-2.1
59 | - OSL-3.0
60 | - QPL-1.0
61 | - Sleepycat
62 |
63 | allowlisted_modules:
64 | # MIT: https://github.com/ghodss/yaml/blob/master/LICENSE
65 | - github.com/ghodss/yaml
66 |
67 | # BSD: https://github.com/gogo/protobuf/blob/master/LICENSE
68 | - github.com/gogo/protobuf
69 |
70 | # BSD: https://github.com/magiconair/properties/blob/master/LICENSE.md
71 | - github.com/magiconair/properties
72 |
73 | # Apache 2.0
74 | - github.com/spf13/cobra
75 | - github.com/spf13/afero
76 |
77 | # Public domain: https://github.com/xi2/xz/blob/master/LICENSE
78 | - github.com/xi2/xz
79 |
80 | # Helm is Apache 2.0: https://github.com/helm/helm/blob/master/LICENSE
81 | # However, it has a bunch of LICENSE test files that our linter fails to understand
82 | - helm.sh/helm/v3
83 |
84 | # https://github.com/pelletier/go-toml/blob/master/LICENSE
85 | # Uses MIT for everything, except a few files copied from
86 | # google's civil library that uses Apache 2
87 | - github.com/pelletier/go-toml
88 |
89 | # https://github.com/xeipuuv/gojsonpointer/blob/master/LICENSE-APACHE-2.0.txt
90 | - github.com/xeipuuv/gojsonpointer
91 | # https://github.com/xeipuuv/gojsonreference/blob/master/LICENSE-APACHE-2.0.txt
92 | - github.com/xeipuuv/gojsonreference
93 | # Apache 2.0: https://github.com/xeipuuv/gojsonschema/blob/master/LICENSE-APACHE-2.0.txt
94 | - github.com/xeipuuv/gojsonschema
95 |
96 | # Apache 2.0 (but missing appendix): https://github.com/garyburd/redigo/blob/master/LICENSE
97 | - github.com/garyburd/redigo
98 | - github.com/gomodule/redigo
99 |
100 | # Apache 2.0
101 | # github.com/ghodss/yaml: MIT / BSD-3
102 | # github.com/gogo/protobuf: BSD-3
103 | # github.com/jmespath/go-jmespath: Apache 2.0
104 | # sigs.k8s.io/yaml: MIT / BSD-3
105 | - github.com/tektoncd/pipeline
106 |
107 | # MIT: https://github.com/kubernetes-sigs/yaml/blob/master/LICENSE
108 | - sigs.k8s.io/yaml
109 |
110 | # https://github.com/go-errors/errors/blob/master/LICENSE.MIT
111 | - github.com/go-errors/errors
112 |
113 | # runc is Apache 2.0: https://github.com/opencontainers/runc/blob/master/LICENSE
114 | # but it contains BSD dep which our linter fails to understand: https://github.com/opencontainers/runc/blob/v0.1.1/Godeps/_workspace/src/github.com/golang/protobuf/LICENSE
115 | - github.com/opencontainers/runc
116 |
117 | # MIT: https://github.com/felixge/fgprof/blob/master/LICENSE.txt
118 | - github.com/felixge/fgprof
119 |
120 | # Apache 2.0
121 | - github.com/google/pprof
122 |
123 | # MIT: https://github.com/invopop/yaml/blob/v0.1.0/LICENSE
124 | - github.com/invopop/yaml
125 |
126 | # Simplified BSD (BSD-2-Clause): https://github.com/russross/blackfriday/blob/master/LICENSE.txt
127 | - github.com/russross/blackfriday
128 | - github.com/russross/blackfriday/v2
129 |
130 | # W3C Test Suite License, W3C 3-clause BSD License
131 | # gonum uses this for its some of its test files
132 | # gonum.org/v1/gonum/graph/formats/rdf/testdata/LICENSE.md
133 | - gonum.org/v1/gonum
134 |
135 | # BSD 3-clause: https://github.com/go-inf/inf/blob/v0.9.1/LICENSE
136 | - gopkg.in/inf.v0
137 |
138 | # BSD 3-clause: https://github.com/go-git/gcfg/blob/main/LICENSE
139 | - github.com/go-git/gcfg
140 |
141 | # Apache 2.0
142 | - github.com/aws/smithy-go
143 |
144 | # Simplified BSD License: https://github.com/gomarkdown/markdown/blob/master/LICENSE.txt
145 | - github.com/gomarkdown/markdown
146 |
--------------------------------------------------------------------------------
/common/config/mdl.rb:
--------------------------------------------------------------------------------
1 | all
2 | rule 'MD002', :level => 1
3 | rule 'MD007', :indent => 4
4 | rule 'MD013', :line_length => 160, :code_blocks => false, :tables => false
5 | rule 'MD026', :punctuation => ".,;:!"
6 | exclude_rule 'MD013'
7 | exclude_rule 'MD014'
8 | exclude_rule 'MD030'
9 | exclude_rule 'MD032'
10 | exclude_rule 'MD033'
11 | exclude_rule 'MD041'
12 | exclude_rule 'MD046'
13 |
--------------------------------------------------------------------------------
/common/config/sass-lint.yml:
--------------------------------------------------------------------------------
1 | #########################
2 | ## Config for sass-lint
3 | #########################
4 | # Linter Options
5 | options:
6 | # Don't merge default rules
7 | merge-default-rules: false
8 | # Raise an error if more than 50 warnings are generated
9 | max-warnings: 500
10 | # Rule Configuration
11 | rules:
12 | attribute-quotes:
13 | - 2
14 | -
15 | include: false
16 | bem-depth: 2
17 | border-zero: 2
18 | brace-style: 2
19 | class-name-format: 2
20 | clean-import-paths: 2
21 | declarations-before-nesting: 2
22 | empty-args: 2
23 | empty-line-between-blocks: 2
24 | extends-before-declarations: 2
25 | extends-before-mixins: 2
26 | final-newline: 2
27 | force-attribute-nesting: 0
28 | force-element-nesting: 0
29 | force-pseudo-nesting: 0
30 | function-name-format: 2
31 | hex-length: 0
32 | hex-notation: 2
33 | id-name-format: 2
34 | indentation:
35 | - 2
36 | -
37 | size: 4
38 | leading-zero:
39 | - 2
40 | -
41 | include: false
42 | max-file-line-count: 0
43 | max-file-length: 0
44 | mixins-before-declarations: 2
45 | no-attribute-selectors: 0
46 | no-color-hex: 0
47 | no-color-keywords: 0
48 | no-color-literals: 0
49 | no-combinators: 0
50 | no-css-comments: 2
51 | no-debug: 2
52 | no-disallowed-properties: 2
53 | no-duplicate-properties: 2
54 | no-empty-rulesets: 2
55 | no-extends: 2
56 | no-ids: 0
57 | no-invalid-hex: 2
58 | no-important: 0
59 | no-mergeable-selectors: 2
60 | no-misspelled-properties: 2
61 | no-qualifying-elements: 0
62 | no-trailing-whitespace: 2
63 | no-trailing-zero: 2
64 | no-transition-all: 0
65 | no-url-domains: 2
66 | no-url-protocols: 2
67 | no-warn: 2
68 | one-declaration-per-line: 2
69 | placeholder-in-extend: 2
70 | placeholder-name-format: 2
71 | property-sort-order: 0
72 | property-units: 2
73 | pseudo-element: 2
74 | quotes:
75 | - 2
76 | -
77 | style: double
78 | shorthand-values: 2
79 | single-line-per-selector: 0
80 | space-after-bang: 2
81 | space-after-colon: 2
82 | space-after-comma: 2
83 | space-around-operator: 2
84 | space-before-bang: 2
85 | space-before-brace: 2
86 | space-before-colon: 2
87 | space-between-parens: 2
88 | trailing-semicolon: 2
89 | url-quotes: 2
90 | variable-for-property:
91 | - 0
92 | -
93 | properties:
94 | - color
95 | - background-color
96 | - fill
97 | variable-name-format: 0
98 | zero-unit: 2
99 |
--------------------------------------------------------------------------------
/common/config/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "defaultSeverity": "error",
3 | "extends": [
4 | "tslint:recommended"
5 | ],
6 | "rules": {
7 | "max-line-length": {
8 | "options": [160]
9 | },
10 | "arrow-parens": false,
11 | "new-parens": true,
12 | "no-arg": true,
13 | "no-bitwise": true,
14 | "no-conditional-assignment": true,
15 | "no-consecutive-blank-lines": true,
16 | "no-console": {
17 | "severity": "warning",
18 | "options": ["debug", "info", "log", "time", "timeEnd", "trace"]
19 | },
20 | "no-shadowed-variable": false,
21 | "eofline": false
22 | },
23 | "jsRules": {},
24 | "rulesDirectory": []
25 | }
--------------------------------------------------------------------------------
/common/scripts/check_clean_repo.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright Istio Authors
4 |
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | function write_patch_file() {
18 | if [ -z "${ARTIFACTS}" ]; then
19 | return 0
20 | fi
21 |
22 | PATCH_NAME="check-clean-repo-diff.patch"
23 | PATCH_OUT="${ARTIFACTS}/${PATCH_NAME}"
24 | git diff > "${PATCH_OUT}"
25 |
26 | [ -n "${JOB_NAME}" ] && [ -n "${BUILD_ID}" ]
27 | # shellcheck disable=SC2319
28 | IN_PROW="$?"
29 |
30 | # Don't persist large diffs (30M+) on CI
31 | LARGE_FILE="$(find "${ARTIFACTS}" -name "${PATCH_NAME}" -type 'f' -size +30M)"
32 | if [ "${IN_PROW}" -eq 0 ] && [ -n "${LARGE_FILE}" ]; then
33 | rm "${PATCH_OUT}"
34 | echo "WARNING: patch file was too large to persist ($(du -h "${PATCH_OUT}"))"
35 | return 0
36 | fi
37 | outName="artifacts/${PATCH_OUT#"${ARTIFACTS}"/}"
38 | patchFile="${PROW_ARTIFACTS_BASE:-https://gcsweb.istio.io/gcs/istio-prow}/pr-logs/pull/${REPO_OWNER}_${REPO_NAME}/${PULL_NUMBER}/${JOB_NAME}/${BUILD_ID}/${outName}"
39 | echo "You can also try applying the patch file from the build artifacts:
40 |
41 | git apply <(curl -sL \"${patchFile}\")
42 | "
43 | }
44 |
45 | if [[ -n $(git status --porcelain) ]]; then
46 | git status
47 | git diff
48 | echo "ERROR: Some files need to be updated, please run 'make gen' and include any changed files in your PR"
49 | write_patch_file
50 | exit 1
51 | fi
52 |
--------------------------------------------------------------------------------
/common/scripts/copyright-banner-go.txt:
--------------------------------------------------------------------------------
1 | // Copyright Istio Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 |
--------------------------------------------------------------------------------
/common/scripts/fix_copyright_banner.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | set -e
25 |
26 | WD=$(dirname "$0")
27 | WD=$(cd "$WD"; pwd)
28 |
29 | for fn in "$@"; do
30 | if ! grep -L -q -e "Apache License, Version 2" -e "Copyright" "${fn}"; then
31 | if [[ "${fn}" == *.go || "${fn}" == *.rs ]]; then
32 | newfile=$(cat "${WD}/copyright-banner-go.txt" "${fn}")
33 | echo "${newfile}" > "${fn}"
34 | echo "Fixing license: ${fn}"
35 | else
36 | echo "Cannot fix license: ${fn}. Unknown file type"
37 | fi
38 | fi
39 | done
40 |
--------------------------------------------------------------------------------
/common/scripts/format_go.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | golangci-lint run --fix -c ./common/config/.golangci.yml
25 |
--------------------------------------------------------------------------------
/common/scripts/gobuild.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors. All Rights Reserved.
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | # This script builds and version stamps the output
25 |
26 | VERBOSE=${VERBOSE:-"0"}
27 | V=""
28 | if [[ "${VERBOSE}" == "1" ]];then
29 | V="-x"
30 | set -x
31 | fi
32 |
33 | SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
34 |
35 | OUT=${1:?"output path"}
36 | shift
37 |
38 | set -e
39 |
40 | export BUILD_GOOS=${GOOS:-linux}
41 | export BUILD_GOARCH=${GOARCH:-amd64}
42 | GOBINARY=${GOBINARY:-go}
43 | GOPKG="$GOPATH/pkg"
44 | BUILDINFO=${BUILDINFO:-""}
45 | STATIC=${STATIC:-1}
46 | LDFLAGS=${LDFLAGS:--extldflags -static}
47 | GOBUILDFLAGS=${GOBUILDFLAGS:-""}
48 | # Split GOBUILDFLAGS by spaces into an array called GOBUILDFLAGS_ARRAY.
49 | IFS=' ' read -r -a GOBUILDFLAGS_ARRAY <<< "$GOBUILDFLAGS"
50 |
51 | GCFLAGS=${GCFLAGS:-}
52 | export CGO_ENABLED=${CGO_ENABLED:-0}
53 |
54 | if [[ "${STATIC}" != "1" ]];then
55 | LDFLAGS=""
56 | fi
57 |
58 | # gather buildinfo if not already provided
59 | # For a release build BUILDINFO should be produced
60 | # at the beginning of the build and used throughout
61 | if [[ -z ${BUILDINFO} ]];then
62 | BUILDINFO=$(mktemp)
63 | "${SCRIPTPATH}/report_build_info.sh" > "${BUILDINFO}"
64 | fi
65 |
66 | # BUILD LD_EXTRAFLAGS
67 | LD_EXTRAFLAGS=""
68 |
69 | while read -r line; do
70 | LD_EXTRAFLAGS="${LD_EXTRAFLAGS} -X ${line}"
71 | done < "${BUILDINFO}"
72 |
73 | OPTIMIZATION_FLAGS=(-trimpath)
74 | if [ "${DEBUG}" == "1" ]; then
75 | OPTIMIZATION_FLAGS=()
76 | fi
77 |
78 | time GOOS=${BUILD_GOOS} GOARCH=${BUILD_GOARCH} ${GOBINARY} build \
79 | ${V} "${GOBUILDFLAGS_ARRAY[@]}" ${GCFLAGS:+-gcflags "${GCFLAGS}"} \
80 | -o "${OUT}" \
81 | "${OPTIMIZATION_FLAGS[@]}" \
82 | -pkgdir="${GOPKG}/${BUILD_GOOS}_${BUILD_GOARCH}" \
83 | -ldflags "${LDFLAGS} ${LD_EXTRAFLAGS}" "${@}"
84 |
--------------------------------------------------------------------------------
/common/scripts/lint_copyright_banner.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | set -e
25 |
26 | ec=0
27 | for fn in "$@"; do
28 | if ! grep -L -q -e "Apache License, Version 2" "${fn}"; then
29 | echo "Missing license: ${fn}"
30 | ec=1
31 | fi
32 |
33 | if ! grep -L -q -e "Copyright" "${fn}"; then
34 | echo "Missing copyright: ${fn}"
35 | ec=1
36 | fi
37 | done
38 |
39 | exit $ec
40 |
--------------------------------------------------------------------------------
/common/scripts/lint_go.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | GOLANGCILINT_RUN_ARGS=(--output.text.path stdout --output.junit-xml.path "${ARTIFACTS}"/junit-lint.xml)
25 |
26 | if [[ "${ARTIFACTS}" != "" ]]; then
27 | golangci-lint run -v -c ./common/config/.golangci.yml "${GOLANGCILINT_RUN_ARGS[@]}"
28 | else
29 | golangci-lint run -v -c ./common/config/.golangci.yml
30 | fi
31 |
--------------------------------------------------------------------------------
/common/scripts/report_build_info.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | if BUILD_GIT_REVISION=$(git rev-parse HEAD 2> /dev/null); then
25 | if [[ -z "${IGNORE_DIRTY_TREE}" ]] && [[ -n "$(git status --porcelain 2>/dev/null)" ]]; then
26 | BUILD_GIT_REVISION=${BUILD_GIT_REVISION}"-dirty"
27 | fi
28 | else
29 | BUILD_GIT_REVISION=unknown
30 | fi
31 |
32 | # Check for local changes
33 | tree_status="Clean"
34 | if [[ -z "${IGNORE_DIRTY_TREE}" ]] && ! git diff-index --quiet HEAD --; then
35 | tree_status="Modified"
36 | fi
37 |
38 | GIT_DESCRIBE_TAG=$(git describe --tags --always)
39 | HUB=${HUB:-"docker.io/istio"}
40 |
41 | # used by common/scripts/gobuild.sh
42 | echo "istio.io/istio/pkg/version.buildVersion=${VERSION:-$BUILD_GIT_REVISION}"
43 | echo "istio.io/istio/pkg/version.buildGitRevision=${BUILD_GIT_REVISION}"
44 | echo "istio.io/istio/pkg/version.buildStatus=${tree_status}"
45 | echo "istio.io/istio/pkg/version.buildTag=${GIT_DESCRIBE_TAG}"
46 | echo "istio.io/istio/pkg/version.buildHub=${HUB}"
47 | echo "istio.io/istio/pkg/version.buildOS=${BUILD_GOOS}"
48 | echo "istio.io/istio/pkg/version.buildArch=${BUILD_GOARCH}"
49 |
--------------------------------------------------------------------------------
/common/scripts/run.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | set -e
25 |
26 | WD=$(dirname "$0")
27 | WD=$(cd "$WD"; pwd)
28 |
29 | export FOR_BUILD_CONTAINER=1
30 | # shellcheck disable=SC1090,SC1091
31 | source "${WD}/setup_env.sh"
32 |
33 |
34 | MOUNT_SOURCE="${MOUNT_SOURCE:-${PWD}}"
35 | MOUNT_DEST="${MOUNT_DEST:-/work}"
36 |
37 | read -ra DOCKER_RUN_OPTIONS <<< "${DOCKER_RUN_OPTIONS:-}"
38 |
39 | [[ -t 0 ]] && DOCKER_RUN_OPTIONS+=("-it")
40 | [[ ${UID} -ne 0 ]] && DOCKER_RUN_OPTIONS+=(-u "${UID}:${DOCKER_GID}")
41 |
42 | # $CONTAINER_OPTIONS becomes an empty arg when quoted, so SC2086 is disabled for the
43 | # following command only
44 | # shellcheck disable=SC2086
45 | "${CONTAINER_CLI}" run \
46 | --rm \
47 | "${DOCKER_RUN_OPTIONS[@]}" \
48 | --init \
49 | --sig-proxy=true \
50 | --cap-add=SYS_ADMIN \
51 | ${DOCKER_SOCKET_MOUNT:--v /var/run/docker.sock:/var/run/docker.sock} \
52 | -e DOCKER_HOST=${DOCKER_SOCKET_HOST:-unix:///var/run/docker.sock} \
53 | $CONTAINER_OPTIONS \
54 | --env-file <(env | grep -v ${ENV_BLOCKLIST}) \
55 | -e IN_BUILD_CONTAINER=1 \
56 | -e TZ="${TIMEZONE:-$TZ}" \
57 | --mount "type=bind,source=${MOUNT_SOURCE},destination=/work" \
58 | --mount "type=volume,source=go,destination=/go" \
59 | --mount "type=volume,source=gocache,destination=/gocache" \
60 | --mount "type=volume,source=cache,destination=/home/.cache" \
61 | --mount "type=volume,source=crates,destination=/home/.cargo/registry" \
62 | --mount "type=volume,source=git-crates,destination=/home/.cargo/git" \
63 | ${CONDITIONAL_HOST_MOUNTS} \
64 | -w "${MOUNT_DEST}" "${IMG}" "$@"
65 |
--------------------------------------------------------------------------------
/common/scripts/tracing.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # WARNING: DO NOT EDIT, THIS FILE IS PROBABLY A COPY
4 | #
5 | # The original version of this file is located in the https://github.com/istio/common-files repo.
6 | # If you're looking at this file in a different repo and want to make a change, please go to the
7 | # common-files repo, make the change there and check it in. Then come back to this repo and run
8 | # "make update-common".
9 |
10 | # Copyright Istio Authors
11 | #
12 | # Licensed under the Apache License, Version 2.0 (the "License");
13 | # you may not use this file except in compliance with the License.
14 | # You may obtain a copy of the License at
15 | #
16 | # http://www.apache.org/licenses/LICENSE-2.0
17 | #
18 | # Unless required by applicable law or agreed to in writing, software
19 | # distributed under the License is distributed on an "AS IS" BASIS,
20 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 | # See the License for the specific language governing permissions and
22 | # limitations under the License.
23 |
24 | # Usage: tracing::extract_prow_trace.
25 | # If running in a prow job, this sets the parent trace to the same value Prow tracing will use, as defined in https://github.com/kubernetes/test-infra/issues/30010
26 | function tracing::extract_prow_trace() {
27 | if [[ "${PROW_JOB_ID:-}" != "" ]]; then
28 | local trace
29 | trace="$(<<< "$PROW_JOB_ID" tr -d '\-')"
30 | local span
31 | span="${trace:0:16}"
32 | export TRACEPARENT="01-${trace}-${span}-00"
33 | fi
34 | }
35 |
36 | function _genattrs() {
37 | # No upstream standard, so copy from https://github.com/jenkinsci/opentelemetry-plugin/blob/master/docs/job-traces.md
38 | if [[ -n "${PULL_NUMBER:=}" ]]
39 | then
40 | # Presubmit
41 | url="https://prow.istio.io/view/gs/istio-prow/pr-logs/pull/${REPO_OWNER}_${REPO_NAME}/${PULL_NUMBER}/${JOB_NAME}/${BUILD_ID},"
42 | else
43 | # Postsubmit or periodic
44 | url="https://prow.istio.io/view/gs/istio-prow/pr-logs/${JOB_NAME}/${BUILD_ID},"
45 | fi
46 | # Use printf instead of echo to avoid spaces between args
47 | printf '%s' "ci.pipeline.id=${JOB_NAME},"\
48 | "ci.pipeline.type=${JOB_TYPE},"\
49 | "ci.pipeline.run.url=${url}"\
50 | "ci.pipeline.run.number=${BUILD_ID},"\
51 | "ci.pipeline.run.id=${PROW_JOB_ID},"\
52 | "ci.pipeline.run.repo=${REPO_OWNER:-unknown}/${REPO_NAME:-unknown},"\
53 | "ci.pipeline.run.base=${PULL_BASE_REF:-none},"\
54 | "ci.pipeline.run.pull_number=${PULL_NUMBER:-none},"\
55 | "ci.pipeline.run.pull_sha=${PULL_PULL_SHA:-${PULL_BASE_SHA:-none}}"
56 | }
57 |
58 | # Usage: tracing::run [command ...]
59 | function tracing::run() {
60 | # If not running in a prow job or otel-cli is not available (e.g. build system without otel-cli) just run the command
61 | if [ -z "${JOB_NAME:-}" ] || ! command -v otel-cli &> /dev/null
62 | then
63 | "${@:2}"
64 | return "$?"
65 | fi
66 |
67 | # Disable execution tracing to avoid noise
68 | { [[ $- = *x* ]] && was_execution_trace=1 || was_execution_trace=0; } 2>/dev/null
69 | { set +x; } 2>/dev/null
70 | # Throughout, "local" usage is critical to avoid nested calls overwriting things
71 | local start
72 | start="$(date -u +%s.%N)"
73 | # First, get a trace and span ID. We need to get one now so we can propagate it to the child
74 | # Get trace ID from TRACEPARENT, if present
75 | local tid
76 | tid="$(<<<"${TRACEPARENT:-}" cut -d- -f2)"
77 | tid="${tid:-"$(tr -dc 'a-f0-9' < /dev/urandom | head -c 32)"}"
78 | # Always generate a new span ID
79 | local sid
80 | sid="$(tr -dc 'a-f0-9' < /dev/urandom | head -c 16)"
81 |
82 | # Execute the command they wanted with the propagation through TRACEPARENT
83 | if [[ $was_execution_trace == 1 ]]; then
84 | { set -x; } 2>/dev/null
85 | fi
86 |
87 | TRACEPARENT="00-${tid}-${sid}-01" "${@:2}"
88 | local result="$?"
89 | { set +x; } 2>/dev/null
90 |
91 | local end
92 | end="$(date -u +%s.%N)"
93 |
94 | # Now report this span. We override the IDs to the ones we set before.
95 | otel-cli span \
96 | --service "${BASH_SOURCE[-1]}" \
97 | --name "$1" \
98 | --start "$start" \
99 | --end "$end" \
100 | --force-trace-id "$tid" \
101 | --force-span-id "$sid" \
102 | --attrs "$(_genattrs)"
103 | if [[ $was_execution_trace == 1 ]]; then
104 | { set -x; } 2>/dev/null
105 | fi
106 | return "$result"
107 | }
108 |
109 | # Usage: tracing::decorate
110 | # Automatically makes a function traced.
111 | function tracing::decorate() {
112 | eval "\
113 | function $1() {
114 | _$(typeset -f "$1")
115 | tracing::run '$1' _$1
116 | }
117 | "
118 | }
119 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module istio.io/community
2 |
3 | go 1.24.0
4 |
5 | toolchain go1.24.1
6 |
7 | require (
8 | istio.io/tools v0.0.0-20250401070947-4e0c92778e91
9 | k8s.io/apimachinery v0.32.2
10 | )
11 |
12 | require (
13 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
14 | sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
15 | sigs.k8s.io/yaml v1.4.0 // indirect
16 | )
17 |
--------------------------------------------------------------------------------
/go.sum:
--------------------------------------------------------------------------------
1 | github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
2 | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
3 | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
4 | github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
5 | github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
6 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
7 | github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
8 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
9 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
11 | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
12 | istio.io/tools v0.0.0-20250401070947-4e0c92778e91 h1:Cm/9ASkLbD1MOqrjiGsJZ9iBlCCRaYW8rO6MOo4jjSA=
13 | istio.io/tools v0.0.0-20250401070947-4e0c92778e91/go.mod h1:QiZMqsBhmOClgPhOTeZQGcEHp6g2wP6BOcP+VL30l20=
14 | k8s.io/apimachinery v0.32.2 h1:yoQBR9ZGkA6Rgmhbp/yuT9/g+4lxtsGYwW6dR6BDPLQ=
15 | k8s.io/apimachinery v0.32.2/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
16 | sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=
17 | sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
18 | sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
19 | sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
20 |
--------------------------------------------------------------------------------
/org/README.md:
--------------------------------------------------------------------------------
1 | # Istio Organization
2 |
3 | The folder contains configuration for the Istio Github Organization. Data here is automatically synced with Github using [peribolos](https://github.com/kubernetes/test-infra/tree/master/prow/cmd/peribolos).
4 |
5 | ## Making Changes
6 |
7 | To modify the org, simply change the config file and submit a PR. Once the PR is merged, the org will be updated.
8 |
9 | Changes can be tested with
10 |
11 | ```bash
12 | make test
13 | ```
14 |
15 | To add yourself to the Org, please add your name in alphabetical order under `members.yaml` and fill out the form in the PR description.
16 |
17 | Teams, such as working groups and release managers, are controlled by the `teams.yaml` file.
18 |
--------------------------------------------------------------------------------
/org/admins.yaml:
--------------------------------------------------------------------------------
1 | # Please add your name in alphabetical order.
2 | admins:
3 | - costinm
4 | - googlebot
5 | - howardjohn
6 | - istio-testing
7 | - keithmattix
8 | - linsun
9 | - louiscryan
10 | - thelinuxfoundation
11 | - therealmitchconnors
--------------------------------------------------------------------------------
/org/config_test.go:
--------------------------------------------------------------------------------
1 | // Copyright Istio Authors.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package main
16 |
17 | import (
18 | "fmt"
19 | "os"
20 | "sort"
21 | "strings"
22 | "testing"
23 |
24 | "k8s.io/apimachinery/pkg/util/sets"
25 | "k8s.io/apimachinery/pkg/util/yaml"
26 |
27 | "istio.io/tools/pkg/orggen"
28 | "istio.io/tools/pkg/orggen/org"
29 | )
30 |
31 | func isSorted(list []string) bool {
32 | items := make([]string, len(list))
33 | for _, l := range list {
34 | items = append(items, strings.ToLower(l))
35 | }
36 |
37 | return sort.StringsAreSorted(items)
38 | }
39 |
40 | func normalize(s sets.Set[string]) sets.Set[string] {
41 | out := sets.Set[string]{}
42 | for i := range s {
43 | out.Insert(NormLogin(i))
44 | }
45 | return out
46 | }
47 |
48 | // NormLogin normalizes GitHub login strings
49 | func NormLogin(login string) string {
50 | return strings.TrimPrefix(strings.ToLower(login), "@")
51 | }
52 |
53 | // testTeamMembers ensures that a user is not a maintainer and member at the same time,
54 | // there are no duplicate names in the list and all users are org members.
55 | func testTeamMembers(teams map[string]org.Team, admins sets.Set[string], orgMembers sets.Set[string]) []error { //nolint:unparam // admins
56 | var errs []error
57 | for teamName, team := range teams {
58 | teamMaintainers := normalize(sets.New(team.Maintainers...))
59 | if len(teamMaintainers.UnsortedList()) > 0 {
60 | errs = append(errs, fmt.Errorf("all users should be under members in %v", teamName))
61 | }
62 | teamMembers := normalize(sets.New(team.Members...))
63 |
64 | // check if all are org members
65 | if missing := teamMembers.Difference(orgMembers); len(missing) > 0 {
66 | errs = append(errs, fmt.Errorf("the following members of team %s are not parent team members: %s", teamName, strings.Join(missing.UnsortedList(), ", ")))
67 | }
68 |
69 | // check if lists are sorted
70 | if !isSorted(team.Maintainers) {
71 | errs = append(errs, fmt.Errorf("the team %s has an unsorted list of maintainers", teamName))
72 | }
73 | if !isSorted(team.Members) {
74 | errs = append(errs, fmt.Errorf("the team %s has an unsorted list of members", teamName))
75 | }
76 |
77 | if team.Children != nil {
78 | errs = append(errs, testTeamMembers(team.Children, admins, teamMembers)...)
79 | }
80 | }
81 | return errs
82 | }
83 |
84 | // Currently we don't use emeritus.yaml programatically, but make sure its well formed so we can in the future
85 | func TestEmeritus(t *testing.T) {
86 | type Emeritus struct {
87 | Emeritus []string `json:"emeritus"`
88 | ReleaseManagers map[string]any `json:"release-managers"`
89 | }
90 | b, err := os.ReadFile("emeritus.yaml")
91 | if err != nil {
92 | t.Fatal(err)
93 | }
94 | em := Emeritus{}
95 | if err := yaml.Unmarshal(b, &em); err != nil {
96 | t.Fatal(err)
97 | }
98 | if !isSorted(em.Emeritus) {
99 | t.Errorf("emeritus unsorted")
100 | }
101 | }
102 |
103 | func TestConvertedOrg(t *testing.T) {
104 | cfg, err := orggen.ReadConfig(".")
105 | if err != nil {
106 | t.Fatal(err)
107 | }
108 | org := orggen.ConvertConfig(cfg).Orgs["istio"]
109 | maintainers := org.Teams["Maintainers"]
110 | leads := org.Teams["Working Group Leads"]
111 | allLeads := sets.NewString(leads.Members...)
112 | allMaintainers := sets.NewString(maintainers.Members...)
113 | childMaintainers := sets.NewString()
114 | for _, ct := range maintainers.Children {
115 | childMaintainers.Insert(ct.Members...)
116 | }
117 | if diff := allMaintainers.Difference(childMaintainers); diff.Len() != 0 {
118 | t.Errorf("top level maintainer not in a team: %v", diff.UnsortedList())
119 | }
120 | if diff := childMaintainers.Difference(allMaintainers); diff.Len() != 0 {
121 | t.Errorf("team maintainer not in top level: %v", diff.UnsortedList())
122 | }
123 | if diff := allLeads.Difference(allMaintainers); diff.Len() != 0 {
124 | t.Errorf("leads not in maintainers: %v", diff.UnsortedList())
125 | }
126 | if diff := allMaintainers.Difference(childMaintainers); diff.Len() != 0 {
127 | t.Errorf("top level maintainer not in any specific teams: %v", diff.UnsortedList())
128 | }
129 | }
130 |
131 | func TestIstioOrg(t *testing.T) {
132 | cfg, err := orggen.ReadConfig(".")
133 | if err != nil {
134 | t.Fatal(err)
135 | }
136 | members := normalize(sets.New(cfg.Members...))
137 | admins := normalize(sets.New(cfg.Admins...))
138 | allOrgMembers := members.Union(admins).Union(members)
139 |
140 | requiredRobots := sets.New("istio-testing", "googlebot")
141 | if !admins.IsSuperset(requiredRobots) {
142 | t.Errorf("Missing required robots as admins: %v", requiredRobots.UnsortedList())
143 | }
144 |
145 | if !isSorted(cfg.Members) {
146 | t.Errorf("members unsorted")
147 | }
148 | if !isSorted(cfg.Admins) {
149 | t.Errorf("admins unsorted")
150 | }
151 |
152 | if errs := testTeamMembers(cfg.Teams, admins, allOrgMembers); errs != nil {
153 | for _, err := range errs {
154 | t.Error(err)
155 | }
156 | }
157 | }
158 |
--------------------------------------------------------------------------------
/org/emeritus.yaml:
--------------------------------------------------------------------------------
1 | # Istio thanks our emeritus maintainers!
2 | emeritus:
3 | - adammil2000
4 | - adiprerepa
5 | - andraxylia
6 | - aryan16
7 | - bianpengyuan
8 | - bleggett
9 | - carolynhu
10 | - chaodaig
11 | - clyang82
12 | - davidhauck
13 | - diemtvu
14 | - douglas-reid
15 | - duderino
16 | - duglin
17 | - e-blackwelder
18 | - elfinhe
19 | - esnible
20 | - fejta
21 | - fleeto
22 | - fpesce
23 | - frankbu
24 | - gargnupur
25 | - gbaufake
26 | - geeknoid
27 | - GregHanson
28 | - incfly
29 | - jasminejaksic
30 | - jasonwzm
31 | - JimmyCYJ
32 | - john-a-joyce
33 | - johnma14
34 | - kailun-qin
35 | - kmoneal
36 | - knrc
37 | - lambdai
38 | - liamawhite
39 | - litong01
40 | - lizan
41 | - loverto
42 | - mandarjog
43 | - michelle192837
44 | - Monkeyanator
45 | - Monkeyanator
46 | - morvencao
47 | - mpherman2
48 | - Nino-K
49 | - nmittler
50 | - nrjpoddar
51 | - oaktowner
52 | - ostromart
53 | - PiotrSikora
54 | - pnambiarsf
55 | - rcaballeromx
56 | - richardwxn
57 | - rshriram
58 | - rvennam
59 | - SataQiu
60 | - sbezverk
61 | - sdake
62 | - SecurityInsanity
63 | - shamsher31
64 | - shankgan
65 | - smawson
66 | - ssuchter
67 | - stewartbutler
68 | - suryadu
69 | - tiswanso
70 | - venilnoronha
71 | - ymesika
72 | - yxue
73 | - ZackButcher
74 | - zhlsunshine
75 |
76 | # Former release managers, by release
77 | release-managers:
78 | Release Managers - 1.3:
79 | description: Release managers for Istio 1.3
80 | members:
81 | - brian-avery
82 | - rlenglet
83 | Release Managers - 1.4:
84 | description: Release managers for Istio 1.4
85 | members:
86 | - ericvn
87 | - howardjohn
88 | - jwendell
89 | Release Managers - 1.5:
90 | description: Release managers for Istio 1.5
91 | members:
92 | - dgn
93 | - ericvn
94 | - johnma14
95 | Release Managers - 1.6:
96 | description: Release managers for Istio 1.6
97 | members:
98 | - brian-avery
99 | - irisdingbj
100 | - jacob-delgado
101 | Release Managers - 1.7:
102 | description: Release managers for Istio 1.7
103 | members:
104 | - JimmyCYJ
105 | - jwendell
106 | - Mythra
107 | Release Managers - 1.8:
108 | description: Release managers for Istio 1.8
109 | members:
110 | - bianpengyuan
111 | - GregHanson
112 | Release Managers - 1.9:
113 | description: Release managers for Istio 1.9
114 | members:
115 | - jacob-delgado
116 | - stevenctl
117 | Release Managers - 1.10:
118 | description: Release managers for Istio 1.10
119 | members:
120 | - Monkeyanator
121 | - ZhiHanZ
122 | Release Managers - 1.11:
123 | description: Release managers for Istio 1.11
124 | members:
125 | - jwendell
126 | - ryantking
127 | - zhlsunshine
128 | Release Managers - 1.12:
129 | description: Release managers for Istio 1.12
130 | members:
131 | - dgn
132 | - Kmoneal
133 | Release Managers - 1.13:
134 | description: Release managers for Istio 1.13
135 | members:
136 | - eliavem
137 | - lei-tang
138 | - stevenctl
139 | Release Managers - 1.14:
140 | description: Release managers for Istio 1.14
141 | members:
142 | - GregHanson
143 | - lei-tang
144 | Release Managers - 1.15:
145 | description: Release managers for Istio 1.15
146 | members:
147 | - aryan16
148 | - dhawton
149 | - Monkeyanator
150 | - ZiyangXiao
151 | Release Managers - 1.16:
152 | description: Release managers for Istio 1.16
153 | members:
154 | - dhawton
155 | - johnma14
156 | - ZiyangXiao
157 | Release Managers - 1.17:
158 | description: Release managers for Istio 1.17
159 | members:
160 | - johnma14
161 | - ksubrmnn
162 | - pmerrison
163 | Release Managers - 1.18:
164 | description: Release managers for Istio 1.18
165 | members:
166 | - hanxiaop
167 | - ksubrmnn
168 | - pmerrison
169 | Release Managers - 1.19:
170 | description: Release managers for Istio 1.19
171 | members:
172 | - aryan16
173 | - hanxiaop
174 | - ksubrmnn
175 | Release Managers - 1.20:
176 | description: Release managers for Istio 1.20
177 | members:
178 | - aryan16
179 | - hanxiaop
180 | - zirain
181 | Release Managers - 1.21:
182 | description: Release managers for Istio 1.21
183 | members:
184 | - aryan16
185 | - thedebugger
186 | - zirain
187 | Release Managers - 1.22:
188 | description: Release managers for Istio 1.22
189 | members:
190 | - hzxuzhonghu
191 | - thedebugger
192 | - zirain
193 |
--------------------------------------------------------------------------------
/prow/community-lint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright 2019 Istio Authors
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | set -e
18 | awesome_bot --skip-save-result --allow 429 --allow-ssl --allow-timeout --allow-dupe --allow-redirect --white-list ./*.md
19 |
20 |
--------------------------------------------------------------------------------
/steering/CHARTER.md:
--------------------------------------------------------------------------------
1 | # Istio Steering Committee
2 |
3 | ## Charter
4 |
5 | The Steering Committee’s responsibilities include:
6 |
7 | 1. Establishing rules of governance for the Istio project, including creation
8 | and ratification of bylaws for the Steering Committee and Technical Oversight
9 | Committee.
10 | 1. Establishing and enforcing principles to guide the Istio project.
11 | 1. Fostering an environment for a healthy and happy community of developers,
12 | contributors, vendors, and users.
13 | 1. Defining, evolving, and defending a
14 | [Code of Conduct](../CONTRIBUTING.md#code-of-conduct).
15 | 1. Advising the Cloud Native Computing Foundation (CNCF) on issues relating
16 | to the Istio trademark and logo, as well as related conformance programs.
17 | 1. Setting marketing and advocacy direction for the project; establishing a
18 | publishing schedule and vetting content, encouraging and assisting community
19 | members in creating content for conferences, fostering an ecosystem of vendors.
20 | 1. Controlling and delegating access to, and establishing processes regarding,
21 | project resources/assets, including but not limited to artifact repositories,
22 | build and test infrastructure, web sites and their domains, blogs, and social
23 | media accounts.
24 | 1. Providing neutral mediation as appropriate to try to resolve non-technical
25 | disputes that arise as part of the project.
26 |
27 | ## Membership and voting
28 |
29 | 1. A Company shall mean an entity which employs a member, and all other
30 | entities that control, are controlled by, or are under common control with that
31 | entity.
32 | 1. The Steering Committee is structured to allow Companies who are most
33 | invested in the success of the Istio project to participate in business and
34 | non-technical decision-making.
35 | 1. All members must abide by the project Code of Conduct.
36 | 1. There are two types of seats on the Steering Committee: Contribution Seats
37 | and Community Seats. All seats will have an annual term, starting at the
38 | completion of each annual Contribution Seat election.
39 | 1. No Company can have more than five seats in total on the Steering Committee.
40 | 1. There shall be nine **Contribution Seats**. Their allocation is determined
41 | by the approximate effort and expenditure on the Istio project. Each year, when
42 | the Steering Committee term begins, the Steering Committee will vote on an
43 | exact formula and procedure for determining allocation for the following year.
44 | That procedure will be published to the istio/community repository;
45 | modifications subsequent to the annual publication of rules shall be considered
46 | modifications to the Steering Committee Charter.
47 | 1. At least three Companies shall be represented in the Contribution Seat
48 | membership. If the formula and procedure would not award seats to at least
49 | three Companies, then the third highest Company shall be awarded a seat,
50 | and then the formula and procedure shall be applied to eight seats instead
51 | of nine.
52 | 1. Contribution Seats will be calculated on February 1 each year, based on the
53 | agreed formula and procedure for the preceding 12 months. Contribution Seats
54 | shall become active at the conclusion of the Community Seat election which
55 | immediately follows their allocation.
56 | 1. If necessary, a company holding a Contribution Seat may change the appointed
57 | individual at any time during the term.
58 | 1. There shall be four **Community Seats** elected by the Istio contributors
59 | and community.
60 | 1. Any [project member](../ROLES.md#member) can self-nominate for the
61 | election, or nominate another project member with their consent.
62 | 1. Elections shall use time-limited, Condorcet voting.
63 | 1. The following are eligible to vote for Community Seats:
64 | 1. [Project members](../ROLES.md#member) who have had a merged PR in
65 | the 12 months prior to the election; and
66 | 1. People who have submitted a voting exception form to the
67 | Steering Committee, demonstrating contribution to the Istio project
68 | that is of a non-code nature in the 12 months prior to the election,
69 | and are granted a vote for the election by a simple majority vote of
70 | the Steering Committee.
71 | 1. No Company can hold more than one Community Seat.
72 | 1. Community Seats are maintained for the term by the individual, even
73 | if they change their Company affiliation.
74 | 1. If an individual changes company affiliation mid-term in a way
75 | that is incompatible with the Company representation policies in
76 | this Charter, the individual will be considered to have resigned
77 | their seat and the first eligible runner-up from the previous
78 | election will replace them for the duration of the term. If there
79 | is no first runner-up eligible to serve in the as per these rules,
80 | then the Steering Committee shall vote by simple majority to replace
81 | the seat for the term.
82 | 1. Because the goal of Community Seats is to increase the perspectives on
83 | the Steering Committee, employees of a Company that holds Contribution
84 | Seats are ineligible to be elected to hold a Community Seat.
85 | 1. Community Seat elections are held immediately after the ratification
86 | of the Contribution Seat assignment for a given year, such that the whole
87 | Steering Committee starts their term together upon the completion of the
88 | election.
89 | 1. A simple majority of Seats shall be sufficient to call a vote of the
90 | Steering Committee, one nominating, and the rest agreeing, over email. Voting
91 | shall be done electronically, in a manner agreed on by the Steering Committee.
92 | Voting shall be open for nine calendar days, after which point it shall close.
93 | If at any point all the Steering Committee members have voted or abstained,
94 | voting shall close.
95 | 1. An affirmative vote of at least 60% of the Seats shall be the decision of
96 | the Steering Committee. However, any changes to the Steering Committee Charter
97 | shall require an affirmative vote of at least 80% of the Seats.
98 |
--------------------------------------------------------------------------------
/steering/CONTRIBUTION-FORMULA.md:
--------------------------------------------------------------------------------
1 | # Contribution seat allocation formula
2 |
3 | The [steering committee charter](CHARTER.md) states "Each year, when
4 | the Steering Committee term begins, the Steering Committee will vote on an exact
5 | formula and procedure for determining allocation for the following year."
6 |
7 | For the February 2024 to February 2025 term, the contribution formula was
8 | **[contributions][contrib]** (being a review, commit, discussion, issue or PR on GitHub) attributed to a Contributing Company,
9 | as measured by [DevStats](https://istio.devstats.cncf.io/d/5/companies-table?orgId=1&var-period_name=Last%20year&var-metric=contributions),
10 | and the [D'Hondt method](https://en.wikipedia.org/wiki/D%27Hondt_method) of allocation of seats.
11 |
12 | Attribution is done using the [cncf/gitdm](https://github.com/cncf/gitdm) developer affiliation files.
13 | Changes to attribution can be made by Pull Request to that repository.
14 |
15 | [The method and results for the previous term are published here](https://docs.google.com/spreadsheets/d/1OIwf11xdL3VHi18uhOnHMwQnlXBS22vvhL0m1qraIds/edit).
16 |
17 | [contrib]: https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/managing-contribution-settings-on-your-profile/viewing-contributions-on-your-profile#what-counts-as-a-contribution
18 |
--------------------------------------------------------------------------------
/steering/README.md:
--------------------------------------------------------------------------------
1 | # Steering Committee
2 |
3 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, branding, marketing, and working with the CNCF.
4 | The technical aspects of the project are led by the [Technical Oversight Committee](../TECH-OVERSIGHT-COMMITTEE.md).
5 |
6 | ## Charter
7 |
8 | See [CHARTER.md](CHARTER.md).
9 |
10 | ## Members
11 |
12 | | Name | Company | Profile | Seat type
13 | ---|---|---|---|---
14 |
| Craig Box | Solo.io | [craigbox](https://github.com/craigbox) | Contribution seat
15 |
| Zack Butcher | Tetrate | [ZackButcher](https://github.com/ZackButcher) | Contribution seat
16 | | | Rob Cernich | Red Hat | [rcernich](https://github.com/rcernich) | Community seat
17 |
| John Howard | Solo.io | [howardjohn](https://github.com/howardjohn) | Contribution seat
18 |
| Faseela K | Ericsson Software Technology | [kfaseela](https://github.com/kfaseela) | Community seat
19 |
| Idit Levine | Solo.io | [ilevine](https://github.com/ilevine) | Contribution seat
20 |
| Keith Mattix | Microsoft | [keithmattix](https://github.com/keithmattix) | Contribution seat
21 | | | Pratima Nambiar | Salesforce | [pnambiarsf](https://github.com/pnambiarsf) | Community seat
22 |
| Justin Pettit | Google | [justinpettit](https://github.com/justinpettit) | Contribution seat
23 |
| Louis Ryan | Solo.io | [louiscryan](https://github.com/louiscryan) | Contribution seat
24 |
| Lin Sun | Solo.io | [linsun](https://github.com/linsun) | Contribution seat
25 |
| Wilson Wu | DaoCloud | [wilsonwu](https://github.com/wilsonwu) | Community seat
26 |
| Zhonghu Xu | Huawei | [hzxuzhonghu](https://github.com/hzxuzhonghu) | Contribution seat
27 |
28 | ## Contribution Seats
29 |
30 | For March 2025 to February 2026, the nine Contribution Seats were [allocated](https://docs.google.com/spreadsheets/d/11Pt5LjX95azzrbWP-73EkKV79enlbaGut1hN-JTor1g/edit?gid=1365082320) per the [agreed formula and process](CONTRIBUTION-FORMULA.md).
31 |
32 | ## Elections
33 |
34 | Every year, four members of the Steering Committee are voted on by the community. Check out the [2025 election guide](elections/2025/).
35 |
36 | ## Meetings
37 |
38 | The Istio Steering Committee meets weekly.
39 | Given the nature of the discussions in Steering, meetings are not currently open to the public. Questions around governance are listed as [issues in the community repo](https://github.com/istio/community/labels/steering-governance), and we invite your feedback there.
40 |
41 | ## Contact
42 |
43 | If you'd like to reach out to the committee please drop a note to
44 | [istio-steering@groups.google.com](mailto:istio-steering@groups.google.com) or contact any
45 | of the individuals listed above on the [Istio Slack](https://slack.istio.io/).
46 |
--------------------------------------------------------------------------------
/steering/elections/2020/README.md:
--------------------------------------------------------------------------------
1 | # 2020 Istio Steering Committee election guide
2 |
3 | The Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term.
4 |
5 | ## Background
6 |
7 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
8 |
9 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
10 |
11 | - Establishing and enforcing principles to guide the Istio project.
12 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
13 | - Defining, evolving, and defending a Code of Conduct.
14 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
15 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
16 |
17 | ## Schedule
18 |
19 | | | |
20 | |-----|-----|
21 | | August 24 | Announcement of Election and publication of VOTERS.md |
22 | | August 27 | Istio Community Meeting discussing the election process |
23 | | September 6 | Candidate bios and voting exception forms due by 2359 UTC (5pm PDT) |
24 | | ~1 week | Election prep week (voters.md validation and CIVS setup and testing) |
25 | | September 14 | Election begins via email ballots |
26 | | September 27 | Election closes by 2359 UTC (5pm PDT) |
27 | | week of September 28 | Winners announced |
28 |
29 | ## Candidacy process
30 |
31 | Eligibility for candidacy is defined in the [Steering Committee charter](../../CHARTER.md) as a [project member](../../../ROLES.md#member) who does not work for a Company that holds a Contribution Seat.
32 |
33 | Members from **Google**, **IBM**, **Red Hat** and **Salesforce** are therefore **ineligible** to stand in this election.
34 |
35 | You may nominate yourself or others for election by creating an issue in the istio/community repository. Please use the title "Nomination - Jane Doe". Nominees should close the issue with a comment if they choose to not accept the nomination.
36 |
37 | Nominees, if eligible, should submit a Pull Request with a biography with a maximum 300 word statement. See [sample janedoe.md](sample-janedoe.md).
38 |
39 | ## Voting process
40 |
41 | Eligibility to vote is defined in the [Steering Committee charter](../../CHARTER.md) as either:
42 |
43 | - a project member who has had at least one Pull Request merged in the past 12 months, or
44 | - someone who has submitted the [voting exception form](https://forms.gle/jeZd9Qs9smabXod67) and has been accepted by the steering committee as having standing in the community.
45 |
46 | Elections will be held using time-limited Condorcet ranking on CIVS using the IRV method.
47 | The top four candidates who are employed by a unique Company (as defined in the Charter) shall be deemed to be elected.
48 |
49 | The election will open for voting starting September 14th via email and end two weeks after on September 27, 2020 at 0000 UTC. You will receive an email to the address on file at the start of the election from `Craig Box (CIVS Poll Supervisor) `. Detailed voting instructions will be provided in the email and on the CIVS polling page. Please note that email can be unreliable, so you are encouraged to contact the election officials if you do not receive a ballot by September 12.
50 |
51 | ### Election officers
52 |
53 | - Craig Box, [@craigbox](https://github.com/craigbox), Google
54 | - Ram Vennam, [@rvennam](https://github.com/rvennam), IBM
55 |
56 | ## Nominees
57 |
58 | | Name | Company/Organization | GitHub |
59 | |:--------------------------:|:--------------------:|:----------------------------------------------------:|
60 | | [Zack Butcher](zackbutcher.md) | Tetrate | [@ZackButcher](https://github.com/ZackButcher) |
61 | | [Neeraj Poddar](nrjpoddar.md) | Aspen Mesh | [@nrjpoddar](https://github.com/nrjpoddar) |
62 | | [Christian Posta](ceposta.md) | Solo.io | [@christian-posta](https://github.com/christian-posta) |
63 | | [Jimmy Song](jimmysong.md) | Tetrate | [@rootsongjc](https://github.com/rootsongjc) |
64 | | [Suresh Visvanathan](sureshvis.md) | Yahoo (Verizon Media) | [@sureshvis](https://github.com/sureshvis) |
65 | | [Jason Webb](jasonwebb.md) | Intuit | [@jwebb49](https://github.com/jwebb49) |
66 | | [Zhonghu Xu](hzxuzhonghu.md) | Huawei | [@hzxuzhonghu](https://github.com/hzxuzhonghu) |
67 |
--------------------------------------------------------------------------------
/steering/elections/2020/VOTERS.md:
--------------------------------------------------------------------------------
1 | # 2020 Istio Steering Committee election guide
2 |
3 | ## Eligible voters list
4 |
5 | The criteria for voter eligibility can be found in the [election guide](README.md).
6 |
7 | **2020-08-24** - List generated from the [members](/org/members.yaml) and [developers](/org/developers.yaml) files, and checking for at least one merged PR as noted by istio-policy-bot in the period 1 August 2019 to 31 July 2020.
8 |
9 | **2020-09-08, 2020-09-19** - Add voters with accepted exception requests.
10 |
11 | If you feel you have standing in the Istio community but are not listed here, please fill in the [voting exception form](https://forms.gle/jeZd9Qs9smabXod67). If your application is approved by a simple majority vote of the Steering Committee, you will be added.
12 |
13 | - aattuluri
14 | - abhide
15 | - adammil2000
16 | - adiprerepa
17 | - anandkumarpatel
18 | - AsCat
19 | - bcheung
20 | - bettyjunod
21 | - bianpengyuan
22 | - bison
23 | - brian-avery
24 | - brianwolfe
25 | - canthefason
26 | - carolynhu
27 | - cgilmour
28 | - ChangyuWang
29 | - chases2
30 | - ChenLingPeng
31 | - chlins
32 | - christian-posta
33 | - cjwagner
34 | - clarketm
35 | - clyang82
36 | - costinm
37 | - craigbox
38 | - crcsmnky
39 | - daixiang0
40 | - davidebbo
41 | - davidraskin
42 | - devlinmr
43 | - dgn
44 | - diemtvu
45 | - dmitri-d
46 | - domgoer
47 | - douglas-reid
48 | - dreadbird
49 | - duderino
50 | - dzdx
51 | - edussx
52 | - elevran
53 | - elfinhe
54 | - ericvn
55 | - esnible
56 | - fejta
57 | - fpesce
58 | - frankbu
59 | - gargnupur
60 | - geeknoid
61 | - GregHanson
62 | - heatherzheng
63 | - helight
64 | - holgero
65 | - howardjohn
66 | - huang195
67 | - hwdef
68 | - hzxuzhonghu
69 | - idouba
70 | - imjoey
71 | - incfly
72 | - irisdingbj
73 | - jackkleeman
74 | - jacob-delgado
75 | - Jason-ZW
76 | - jasonall
77 | - jasonwzm
78 | - jgkogan
79 | - JHDST
80 | - JimmyCYJ
81 | - jmazzitelli
82 | - joeyb
83 | - johnma14
84 | - johscheuer
85 | - josephpeacock
86 | - jpapejr
87 | - jplevyak
88 | - jtrbs
89 | - justinpettit
90 | - justinwei2
91 | - jwebb49
92 | - jwendell
93 | - Katharine
94 | - kebe7jun
95 | - kevin21th
96 | - knight42
97 | - knrc
98 | - kramerul
99 | - kramvan1
100 | - kyessenov
101 | - lambdai
102 | - ldemailly
103 | - leecalcote
104 | - lei-tang
105 | - leowucn
106 | - liamawhite
107 | - liminw
108 | - linsun
109 | - lizan
110 | - louiscryan
111 | - lyzhang1999
112 | - mandarjog
113 | - maplebeats
114 | - martonsereg
115 | - maxbischoff
116 | - mbanikazemi
117 | - mcieplak
118 | - michelle192837
119 | - monsteredc
120 | - Moriadry
121 | - morningspace
122 | - morvencao
123 | - mpvl
124 | - mrshengzyzy
125 | - myidpt
126 | - nak3
127 | - Nino-K
128 | - niwatorrri
129 | - nmittler
130 | - nrjpoddar
131 | - nschhina
132 | - oaktowner
133 | - objectiser
134 | - ostromart
135 | - phil9909
136 | - PiotrSikora
137 | - pitlv2109
138 | - qfel
139 | - quanjielin
140 | - qwertyuiop888
141 | - ramaraochavali
142 | - rcaballeromx
143 | - rcernich
144 | - richardwxn
145 | - rlenglet
146 | - roaldvanloon
147 | - rootsongjc
148 | - rshriram
149 | - ruigulala
150 | - rvennam
151 | - rytswd
152 | - S-Chan
153 | - SataQiu
154 | - sbezverk
155 | - scottilee
156 | - sdake
157 | - sebastienvas
158 | - SecurityInsanity
159 | - seflerZ
160 | - selmanj
161 | - shakti-das
162 | - shamsher31
163 | - Shikugawa
164 | - smawson
165 | - sniperking1234
166 | - ssuchter
167 | - stevenctl
168 | - stewartbutler
169 | - sunshine6
170 | - tangiel
171 | - tanjunchen
172 | - tariq1890
173 | - tbarrella
174 | - therealmitchconnors
175 | - tiswanso
176 | - venilnoronha
177 | - waret
178 | - waynz0r
179 | - williamaronli
180 | - withlin
181 | - xulingqing
182 | - yangminzhu
183 | - yingzhuivy
184 | - yuxiaobo96
185 | - yxue
186 | - zcahana
187 | - zehuaiWANG
188 | - zerobfd
189 | - zhaohuabing
190 | - ZhengzheYang
191 | - zhongfox
192 | - zhranklin
193 | - zqzzq
194 | - zyfjeff
195 |
196 |
--------------------------------------------------------------------------------
/steering/elections/2020/ceposta.md:
--------------------------------------------------------------------------------
1 | # Christian Posta
2 |
3 | - GitHub: https://github.com/christian-posta
4 | - Affiliation: Field CTO, Solo.io
5 | - Slack: @ceposta
6 | - Twitter: @christianposta
7 | - LinkedIn: https://www.linkedin/in/ceposta
8 |
9 | # Bio
10 | Christian Posta (@christianposta) is Global Field CTO at Solo.io and well known in the community for being an author (Istio in Action, Manning, Microservices for Java Developers, O’Reilly 2016), frequent blogger, speaker, open-source enthusiast and contributor on various open-source projects including Istio, Kubernetes, and many others. Christian has spent time at both enterprises as well as web-scale companies and now helps companies create and deploy large-scale, cloud-native, resilient, distributed architectures. He enjoys mentoring, training and leading teams to be successful with distributed systems concepts, microservices, devops, and cloud-native application design.
--------------------------------------------------------------------------------
/steering/elections/2020/hzxuzhonghu.md:
--------------------------------------------------------------------------------
1 | # Zhonghu Xu
2 |
3 | - GitHub: https://github.com/hzxuzhonghu
4 | - Affiliation: Huawei
5 | - Slack: @hzxuzhonghu
6 | - Twitter: @ZhonghuXu
7 | - LinkedIn: https://www.linkedin.com/in/%E4%B8%AD%E8%99%8E-%E5%BE%90-90380b177/
8 |
9 | # Bio
10 | I (@hzxuzhonghu) joined in 2018 as a contributor. Over the last two years, I have loved working with so many amazing contributors collaboratively build an amazing community and witnessed the prosperity of service mesh and especially Istio. I have become one of the earliest maintainers of Istio and contributed many features like locality load balancing, virtual service delegation, and better VM support and also committed to performance, scalability and reliability. I am one of the top contributors and have made totally 5,628 contributions to Istio community since beginning and will continue on.
11 |
12 | I am one of the earliest advocates of service mesh Istio in China and help users get started with Istio. Author of Cloud Native Service Mesh Istio, the best-selling service mesh book in China. I am also an open-source enthusiast and contributors on Kubernetes and Volcano. Currently I am totally focused on micro-service, service mesh, Kubernetes, containerization and dedicated on cloud native application.
13 |
14 | If elected, I aim to bring the voice of the contributors to the steering table. I hope to provide neutral mediation to try to solve non-technical disputes, and do the hard work needed to foster an environment which is healthy for contributors, end-users and vendors.
15 |
--------------------------------------------------------------------------------
/steering/elections/2020/jasonwebb.md:
--------------------------------------------------------------------------------
1 | # Jason Webb
2 |
3 | - GitHub: https://github.com/jwebb49
4 | - Affiliation: Distinguished Engineer, Intuit
5 | - Slack: @Jason Webb (Intuit)
6 | - LinkedIn: https://www.linkedin.com/in/jason-webb-a54520b
7 |
8 | # Bio
9 | Jason Webb [@Jason Webb (Intuit)] has been involved in with Istio since 2018 and is currently the CNCF Service Mesh End User Group co-chair. The CNCF Service Mesh End User Group is composed of over 30+ companies that gather to share best practices and discuss findings as they adopt and deploy Service Mesh technologies at their companies. In bringing Istio to Intuit, Jason developed automation and learned how to scale Istio across multiple clusters. After collaborating with Istio security and networking working groups, Jason refined the approach and published the Istio ecosystem project Admiral. The development of Admiral involved collaboration with security and networking Istio working groups. Jason co-presented Admiral at Kubecon North America 2019, demonstrating the ability to perform global routing in a multi-cluster Istio deployment. As the CNCF Service Mesh End User group co-chair, Jason would bring the End User perspective to the steering committee enabling the Service Mesh to have a broader impact on the enterprise.
10 |
--------------------------------------------------------------------------------
/steering/elections/2020/jimmysong.md:
--------------------------------------------------------------------------------
1 | # Jimmy Song
2 |
3 | - GitHub: https://github.com/rootsongjc
4 | - Affiliation: developer advocate, Tetrate.io
5 | - Slack: @Jimmy Song
6 | - Twitter: @jimmysongio
7 | - LinkedIn: https://www.linkedin.com/in/jimmysongio/
8 |
9 | # Bio
10 | Jimmy is a developer advocate at Tetrate, CNCF ambassador,
11 | co-founder of ServiceMesher Community which is the largest Service Mesh Community of the world with 4000+ members. He is the initiator and key maintainer of the istio.io Chinese website.
12 | He also writes blogs and books about Istio in the last few years.
13 | He has published five books on cloud native, four in translation, and one original.
14 |
--------------------------------------------------------------------------------
/steering/elections/2020/nrjpoddar.md:
--------------------------------------------------------------------------------
1 | # Neeraj Poddar
2 |
3 | - GitHub: https://github.com/nrjpoddar
4 | - Affiliation: Co-founder & Chief Architect, Aspen Mesh
5 | - Slack: @nrjpoddar
6 | - Twitter: @nrjpoddar
7 | - LinkedIn: https://www.linkedin.com/in/nrjpoddar/
8 |
9 | # Bio
10 |
11 | Neeraj Poddar is the Co-founder and the Chief Architect at Aspen Mesh. He has
12 | worked on various aspects of operating systems, networking and distributed
13 | systems over the span of his career. He is passionate about developing efficient
14 | and performant distributed applications. He's an open source enthusiast and is
15 | currently Istio Technical Oversight Committee (TOC) member and Product Security
16 | Working Group Lead. When not working on service meshes, you can find him playing
17 | racquetball and gaining back the calories spent playing by trying out new
18 | restaurants.
19 |
--------------------------------------------------------------------------------
/steering/elections/2020/sample-janedoe.md:
--------------------------------------------------------------------------------
1 | # Jane Doe
2 |
3 | - GitHub: https://github.com/janedoe
4 | - Affiliation: Where you work or independent
5 | - Slack: @you
6 | - Twitter/Other: Add lines as appropriate
7 |
8 | # Bio
9 |
10 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc convallis dictum purus. Ut sagittis, lorem ut tincidunt faucibus, orci odio pulvinar metus, ut scelerisque est ante sit amet erat. Phasellus malesuada eros vel ultricies tempus. Etiam dictum massa a scelerisque euismod. Mauris cursus euismod erat, at dignissim magna laoreet eu. Donec sed ex et lectus mattis vestibulum. Duis sodales diam nec augue vulputate vestibulum. Praesent sed mi at felis molestie fringilla.
11 |
12 | # Why I'm running
13 |
14 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc convallis dictum purus. Ut sagittis, lorem ut tincidunt faucibus, orci odio pulvinar metus, ut scelerisque est ante sit amet erat. Phasellus malesuada eros vel ultricies tempus. Etiam dictum massa a scelerisque euismod. Mauris cursus euismod erat, at dignissim magna laoreet eu. Donec sed ex et lectus mattis vestibulum. Duis sodales diam nec augue vulputate vestibulum. Praesent sed mi at felis molestie fringilla.
15 |
--------------------------------------------------------------------------------
/steering/elections/2020/sureshvis.md:
--------------------------------------------------------------------------------
1 | # Suresh Visvanathan
2 |
3 | - GitHub: [@sureshvis](https://github.com/sureshvis)
4 | - Affiliation: Yahoo (Verizon Media)
5 | - Slack: @SureshVisvanathan
6 | - Twitter/Other: https://www.linkedin.com/in/sureshvisvanathan/
7 |
8 | # Bio
9 |
10 | Suresh Visvanathan, Sr Director of Engineering, Cloud Platform at Yahoo (Verizon Media). Suresh leads the Kubernetes/Istio effort and team at Yahoo which has one of the largest on-prem Kubernetes and Istio deployments. Suresh’s responsibilities also include the architecture, vision, strategy and design of cloud platform-as-a-service (PaaS). Suresh has also been architecting solutions and building a Platform which serves a few millions QPS using Istio, Kubernetes, Docker, Apache traffic Server. He is a frequent speaker at Kubecon meet-ups and other Bay area meetups.
11 |
12 |
13 | Suresh’s journey with Istio started very early on, back to its inception in 2017. Having seen the potential Istio had to solve many use-cases within Yahoo he was the first to introduce it internally. He joined Google’s Early Engagement program for Istio to help share his product vision and steer the future roadmap. A few of the notable contributions that he was able to make as a part of the program were to provide guidance around the security aspects of the Istio auth architecture, emphasize the need for flexibility in extending the Pilot generated configuration, and provide real world performance testing scenarios. This feedback was translated into production ready features that are part of Istio core today.
--------------------------------------------------------------------------------
/steering/elections/2020/zackbutcher.md:
--------------------------------------------------------------------------------
1 | # Zack Butcher
2 |
3 | * GitHub: @ZackButcher
4 | * Affiliation: Founding Engineer, Tetrate.io
5 | * Slack: @zackbutcher
6 | * Twitter: @ZackButcher
7 |
8 | # Bio
9 |
10 | Zack is a contributor @IstioMesh and a Founding Engineer at Tetrate. He's co-author of Istio: Up and Running as well as NIST SP 800-204a, Building Secure Microservices-based Applications Using Service-Mesh Architecture. At Tetrate he helps enable Istio adoption in enterprise organizations. Before Tetrate, he worked at Google as one of the earliest members of the Istio team. Prior to Istio he worked on a variety of teams across Google Cloud Platform, focusing on authorization, policy, data retention, as well as the internal system Istio draws from.
11 |
--------------------------------------------------------------------------------
/steering/elections/2021/README.md:
--------------------------------------------------------------------------------
1 | # 2021 Istio Steering Committee election guide
2 |
3 | The Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term.
4 |
5 | ## Background
6 |
7 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
8 |
9 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
10 |
11 | - Establishing and enforcing principles to guide the Istio project.
12 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
13 | - Defining, evolving, and defending a Code of Conduct.
14 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
15 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
16 |
17 | ## Schedule
18 |
19 | | Date | Event |
20 | |-----------------|----------------|
21 | | June 28 | Announcement of Election and publication of VOTERS.md |
22 | | July 11 | Candidate bios and voting exception forms due by 2359 UTC (5pm PDT) |
23 | | ~1 week | Election prep week (VOTERS.md validation, Elekto setup and testing) |
24 | | July 12 | Election begins via Elekto UI |
25 | | July 25 | Election closes by 2359 UTC (5pm PDT) |
26 | | week of July 26 | Winners announced |
27 |
28 | ## Candidacy process
29 |
30 | Eligibility for candidacy is defined in the [Steering Committee charter](../../CHARTER.md) as a [project member](../../../ROLES.md#member) who does not work for a Company that holds a Contribution Seat.
31 |
32 | Members from **Google**, **IBM**, **Red Hat** and **Salesforce** are therefore **ineligible** to stand in this election.
33 |
34 | If you want to stand for election, open a PR against the [istio/community repository](https://github.com/istio/community) to include
35 | your candidate profile in the `/steering/elections/2021` folder, with the file named in the format `candidate-yourname.md`. We have included [a template file](nomination-template.md) as an example. This profile should include:
36 |
37 | - Your name
38 | - Your GitHub ID
39 | - Your company affiliation (employer or otherwise)
40 | - Your contributions to Istio
41 | - Why you are running
42 |
43 | Once you have created the PR, you may encourage endorsements as comments on it. After a candidate has met all election requirements, the Election Officers will merge the profile PR.
44 |
45 | If you want to nominate someone else, you may do so, but please confirm their interest first.
46 |
47 | ## Voting process
48 |
49 | Eligibility to vote is defined in the [Steering Committee charter](../../CHARTER.md) as either:
50 |
51 | - a project member who has had at least one Pull Request merged in the past 12 months, or
52 | - someone who has submitted the [voting exception form](https://forms.gle/gvJemYA9ECey3K7b6) and has been accepted by the steering committee as having standing in the community.
53 |
54 | Elections will be held using [Elekto](https://elekto.io/), an online voting tool
55 | created for the CNCF. Elekto has one critical advantage over CIVS, which is that
56 | it uses GitHub OAuth to log you in to vote, instead of relying on email.
57 |
58 | Thus, when you go to Elekto, you will be prompted to log in your GitHub account.
59 | You will then be able to click on "Explore Election" to look at the list of
60 | elections, and select the "2021 Istio Steering Committee Election."
61 |
62 | The election page will, among other things, confirm if you are eligible to vote,
63 | via a button at the top of the screen.
64 |
65 | As candidates file their candidate statements in the community repo, they will
66 | become visible in the Elekto UI. You may click through to any candidate to see
67 | their profile.
68 |
69 | Once the vote begins, you will be able to rank the candidates in the order of
70 | your preference, and submit your ballot. When you submit, you will be offered
71 | a chance to set a password, which is required if you want the ability to return
72 | and re-cast your ballot before July 25th.
73 |
74 | All data is stored on cloud infrastructure maintained by the election officers,
75 | and is not shared with third parties. Individual ballot data is encrypted, and
76 | not retrievable by anyone except in aggregate form.
77 |
78 | The top four candidates who are employed by a unique Company (as defined in the
79 | Charter) shall be deemed to be elected.
80 |
81 | ### Election officers
82 |
83 | - Craig Box, [@craigbox](https://github.com/craigbox), Google
84 | - Jason McGee, [@CloudJason](https://github.com/CloudJason), IBM
85 | - Josh Berkus, [@jberkus](https://github.com/jberkus), Red Hat
86 |
--------------------------------------------------------------------------------
/steering/elections/2021/VOTERS.md:
--------------------------------------------------------------------------------
1 | # 2021 Istio Steering Committee election guide
2 |
3 | ## Eligible voters list
4 |
5 | The criteria for voter eligibility can be found in the [election guide](README.md).
6 |
7 | **2021-06-28** - List generated from the [members](/org/members.yaml) file, and checking for at least one merged PR as noted by istio-policy-bot in the period 28 June 2020 to 28 June 2021.
8 |
9 | If you feel you have standing in the Istio community but are not listed here, please fill in the [voting exception form](https://forms.gle/gvJemYA9ECey3K7b6). If your application is approved by a simple majority vote of the Steering Committee, you will be added.
10 |
11 | - aattuluri
12 | - adiprerepa
13 | - AsCat
14 | - bcheung
15 | - bianpengyuan
16 | - BinacsLee
17 | - bison
18 | - brian-avery
19 | - brianwolfe
20 | - carolynhu
21 | - chaodaiG
22 | - chases2
23 | - chizhg
24 | - christian-posta
25 | - cjwagner
26 | - clarketm
27 | - costinm
28 | - craigbox
29 | - daisy-ycguo
30 | - daixiang0
31 | - dapengJacky
32 | - davidhauck
33 | - davidraskin
34 | - devincd
35 | - dgn
36 | - dmitri-d
37 | - douglas-reid
38 | - duderino
39 | - e-blackwelder
40 | - elfinhe
41 | - ericvn
42 | - esnible
43 | - fejta
44 | - fpesce
45 | - frankbu
46 | - gargnupur
47 | - GregHanson
48 | - hacktron95
49 | - heatherzheng
50 | - houshengbo
51 | - howardjohn
52 | - hzxuzhonghu
53 | - incfly
54 | - irisdingbj
55 | - jacob-delgado
56 | - jasonwzm
57 | - jgkogan
58 | - JHDST
59 | - JimmyCYJ
60 | - jmazzitelli
61 | - joeyb
62 | - johnma14
63 | - jplevyak
64 | - jtrbs
65 | - justinpettit
66 | - justinwei2
67 | - jwendell
68 | - kailun-qin
69 | - kebe7jun
70 | - Kmoneal
71 | - knight42
72 | - kramvan1
73 | - kushthedude
74 | - kyessenov
75 | - lambdai
76 | - ldemailly
77 | - lei-tang
78 | - liamawhite
79 | - lianghao208
80 | - liminw
81 | - linsun
82 | - litong01
83 | - liwenhao0810
84 | - louiscryan
85 | - luckoseabraham
86 | - lyzhang1999
87 | - mandarjog
88 | - michelle192837
89 | - Monkeyanator
90 | - monsteredc
91 | - morvencao
92 | - mpherman2
93 | - mrshengzyzy
94 | - MXuDong
95 | - myidpt
96 | - nak3
97 | - nikita15p
98 | - niwatorrri
99 | - nmittler
100 | - nmnellis
101 | - nrjpoddar
102 | - nschhina
103 | - orangegzx
104 | - ostromart
105 | - panjf2000
106 | - PiotrSikora
107 | - qwertyuiop888
108 | - ramaraochavali
109 | - richardwxn
110 | - rlenglet
111 | - rootsongjc
112 | - rshriram
113 | - ruigulala
114 | - rvennam
115 | - ryantking
116 | - rytswd
117 | - S-Chan
118 | - scaat
119 | - sdake
120 | - sergii-ssh
121 | - shakti-das
122 | - shamsher31
123 | - shankgan
124 | - shaowenchen
125 | - Shikugawa
126 | - silenceshell
127 | - smawson
128 | - sniperking1234
129 | - SpecialYang
130 | - ssuchter
131 | - stevenctl
132 | - stewartbutler
133 | - su225
134 | - tanjunchen
135 | - tariq1890
136 | - tbarrella
137 | - therealmitchconnors
138 | - TianTianBigWang
139 | - venilnoronha
140 | - vicentefb
141 | - wangmeng
142 | - williamaronli
143 | - wzshiming
144 | - xulingqing
145 | - yangminzhu
146 | - youhonglian
147 | - yskopets
148 | - zackzhangkai
149 | - zc2638
150 | - zerobfd
151 | - zhaohuabing
152 | - ZhengzheYang
153 | - zhiguo-lu
154 | - ZhiHanZ
155 | - zhlsunshine
156 | - zhongfox
157 | - zufardhiyaulhaq
158 | - zyfjeff
159 |
--------------------------------------------------------------------------------
/steering/elections/2021/candidate-hzxuzhonghu.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Zhonghu Xu
3 | ID: hzxuzhonghu
4 | info:
5 | - affiliation: Huawei
6 | -------------------------------------------------------------
7 |
8 | Zhonghu has been contributing to Istio since 2018. Over the last three years, he has collaborated with so many amazing guys to make istio more efficient and stable. He witnessed the prosperity of service mesh and especially aims to make istio the most popular service mesh solution. Being lucky to join istio at the very early stage, he is one of the top contributors of istio and have made totally 7,906 contributions to Istio community since beginning and 2,565 last year. Zhonghu is now a steering committee member and a core maintainer of networking WG, and is more keen on reviewing and helping new users and contributors now.
9 |
10 | He is one of the earliest advocates of service mesh Istio in China and organized the first Istio meetup in China. He is also the author of Cloud Native Service Mesh Istio, the best-selling service mesh book in China. And he has also spoken publicly many times about istio.
11 |
12 | I am currently focused on istio and have been working in open source for about five years, as a contributor, maintainer or any other roles i want a neutral community. So I want to repeat my last year's word: I want to bring the voice of any user and contributor to steering table and hope to provide neutral mediation to try to solve non-technical disputes, and do the hard work needed to foster an environment which is healthy for contributors, end-users and vendors.
--------------------------------------------------------------------------------
/steering/elections/2021/candidate-linsun.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Lin Sun
3 | ID: linsun
4 | info:
5 | - affiliation: solo.io
6 | -------------------------------------------------------------
7 |
8 | Lin has worked on Istio service mesh since 2017 and currently serves on the Istio Technical Oversight Committee. She is also an Istio maintainer of the Build Test Release (BTR) working group, Networking working group, and Environment working group. She maintains the overall Istio repository, the enhancements repository, and the repositories in the Istio-ecosystem organization. She has made 6000+ contributions (including 300+ PRs) to the Istio project (per [Istio’s devstats](https://istio.teststats.cncf.io/d/66/developer-activity-counts-by-companies)) and is committed to continue contributing to Istio. She is the co-author of the book "Istio Explained" and multiple free Istio workshops. She is a frequent Istio and service mesh speaker at cloud-native conferences and an active blogger. Previously, Lin was the conference co-chair for IstioCon 2021 and served on the Istio Steering Committee for three years. She also served as Istio 1.2’s release manager, BTR’s working group lead, and a member of Istio’s Product Security working group.
9 |
10 | I am an open-source enthusiast and firm believer that Istio will become the dominant service mesh. I am passionate about advocating for Istio in the service mesh industry and helping users adopt Istio successfully. If elected, I would love to help out with various aspects of making Istio successful, such as enforcing principles to guide the project or fostering an environment for happy developers, contributors, vendors, and users, and providing neutral mediation for non-technical disputes. I speak Chinese fluently in addition to English and can help resolve concerns raised around our Chinese community.
11 |
--------------------------------------------------------------------------------
/steering/elections/2021/candidate-nrjpoddar.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Neeraj Poddar
3 | ID: nrjpoddar
4 | info:
5 | - affiliation: Aspen Mesh
6 | -------------------------------------------------------------
7 |
8 | Neeraj Poddar is the Co-founder and the Chief Architect at Aspen Mesh. He has
9 | worked on various aspects of operating systems, networking and distributed
10 | systems over the span of his career. He is passionate about developing efficient
11 | and performant distributed applications. He's an open source enthusiast and is
12 | currently an Istio Technical Oversight Committee (TOC) and Steering Committee member.
13 | When not working on service meshes, you can find him playing
14 | racquetball and gaining back the calories spent playing by trying out new
15 | restaurants.
16 |
17 | I want to continue my work in Istio and help further grow the community by
18 | helping out in both technical and administrative aspects of the project which is
19 | why I'm running for Steering elections again in 2021.
20 |
--------------------------------------------------------------------------------
/steering/elections/2021/candidate-zackbutcher.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Zack Butcher
3 | ID: ZackButcher
4 | info:
5 | - affiliation: Tetrate
6 | -------------------------------------------------------------
7 |
8 | Zack is a contributor @IstioMesh and a Founding Engineer at Tetrate. He's co-author of Istio: Up and Running and helps develop microservice security standards with the National Institute of Standards and Technology through NIST SPs 800-204a, Building Secure Microservices-based Applications Using Service-Mesh Architecture and SP 800-204b, Attribute-based Access Control for Microservices-based Applications using a Service Mesh. At Tetrate he helps enable Istio adoption in enterprise organizations around the world. Before Tetrate, he worked at Google as one of the earliest members of the Istio team. Prior to Istio he worked on a variety of teams across Google Cloud Platform, focusing on authorization, policy, data retention, as well as the internal system Istio draws from.
9 |
--------------------------------------------------------------------------------
/steering/elections/2021/nomination-template.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Your Name
3 | ID: githubid
4 | info:
5 | - affiliation: Employer or other org affiliation
6 | -------------------------------------------------------------
7 |
8 | Here's a paragraph about my contributions to Istio.
9 |
10 | Here's a paragraph about why I'm running.
11 |
12 | (Copy this as candidate-yourname.md and create a PR)
13 |
--------------------------------------------------------------------------------
/steering/elections/2022/README.md:
--------------------------------------------------------------------------------
1 | # 2022 Istio Steering Committee election guide
2 |
3 | The Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term.
4 |
5 | ## Background
6 |
7 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
8 |
9 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
10 |
11 | - Establishing and enforcing principles to guide the Istio project.
12 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
13 | - Defining, evolving, and defending a Code of Conduct.
14 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
15 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
16 |
17 | ## Schedule
18 |
19 | | Date | Event |
20 | |--------------------|----------------|
21 | | September 20 | Announcement of Election and publication of VOTERS.md |
22 | | October 2 | Candidate bios and voting exception forms due by 2359 UTC (5pm PDT) |
23 | | ~1 week | Election prep week (VOTERS.md validation, Elekto setup and testing) |
24 | | October 3 | Election begins via Elekto UI |
25 | | October 16 | Election closes at 2359 UTC (5pm PDT) |
26 | | week of October 17 | Winners announced |
27 |
28 | ## Candidacy process
29 |
30 | Eligibility for candidacy is defined in the [Steering Committee charter](../../CHARTER.md) as a [project member](../../../ROLES.md#member) who does not work for a Company that holds a Contribution Seat.
31 |
32 | Members from **Google**, **IBM**, **Red Hat** and **DaoCloud** are therefore **ineligible** to stand in this election.
33 |
34 | If you want to stand for election, open a PR against the [istio/community repository](https://github.com/istio/community) to include
35 | your candidate profile in the `/steering/elections/2022` folder, with the file named in the format `candidate-yourname.md`. We have included [a template file](nomination-template.md) as an example. This profile should include:
36 |
37 | - Your name
38 | - Your GitHub ID
39 | - Your company affiliation (employer or otherwise)
40 | - Your contributions to Istio
41 | - Why you are running
42 |
43 | Once you have created the PR, you may encourage endorsements as comments on it. After a candidate has met all election requirements, the Election Officers will merge the profile PR.
44 |
45 | If you want to nominate someone else, you may do so, but please confirm their interest first.
46 |
47 | ## Voting process
48 |
49 | Eligibility to vote is defined in the [Steering Committee charter](../../CHARTER.md) as either:
50 |
51 | - a project member who has had at least one Pull Request merged in the past 12 months, or
52 | - someone who has submitted the [voting exception form](https://forms.gle/ucNfjUN6ruzJ3mL26) and has been accepted by the steering committee as having standing in the community.
53 |
54 | Elections will be held using [Elekto](https://elekto.io/), an online voting tool
55 | created for the CNCF. Elekto has one critical advantage over CIVS, which is that
56 | it uses GitHub OAuth to log you in to vote, instead of relying on email.
57 |
58 | Thus, when you go to Elekto, you will be prompted to log in your GitHub account.
59 | You will then be able to click on "Explore Election" to look at the list of
60 | elections, and select the "2022 Istio Steering Committee Election."
61 |
62 | The election page will, among other things, confirm if you are eligible to vote,
63 | via a button at the top of the screen.
64 |
65 | As candidates file their candidate statements in the community repo, they will
66 | become visible in the Elekto UI. You may click through to any candidate to see
67 | their profile.
68 |
69 | Once the vote begins, you will be able to rank the candidates in the order of
70 | your preference, and submit your ballot. When you submit, you will be offered
71 | a chance to set a password, which is required if you want the ability to return
72 | and re-cast your ballot before October 16th.
73 |
74 | All data is stored on cloud infrastructure maintained by the election officers,
75 | and is not shared with third parties. Individual ballot data is encrypted, and
76 | not retrievable by anyone except in aggregate form.
77 |
78 | The top four candidates who are employed by a unique Company (as defined in the
79 | Charter) shall be deemed to be elected.
80 |
81 | ### Election officers
82 |
83 | - [Cameron Etezadi](https://github.com/cetezadi), Google
84 | - [Ram Vennam](https://github.com/rvennam), Solo.io
85 |
--------------------------------------------------------------------------------
/steering/elections/2022/VOTERS.md:
--------------------------------------------------------------------------------
1 | # 2022 Istio Steering Committee election guide
2 |
3 | ## Eligible voters list
4 |
5 | The criteria for voter eligibility can be found in the [election guide](README.md).
6 |
7 | **2022-09-19** - List generated from the [members](/org/members.yaml) file, and checking for at least one merged PR as noted by istio-policy-bot in the period 19 September 2021 to 19 September 2022.
8 |
9 | If you feel you have standing in the Istio community but are not listed here, please fill in the [voting exception form](https://forms.gle/ucNfjUN6ruzJ3mL26). If your application is approved by a simple majority vote of the Steering Committee, you will be added.
10 |
11 | - Aakash2017
12 | - abhijoglekar
13 | - AdamKorcz
14 | - AllenZMC
15 | - ameer00
16 | - AndreaM12345
17 | - andrewshaoyu
18 | - angaluri
19 | - Arhell
20 | - aryan16
21 | - bianpengyuan
22 | - birkland
23 | - cetezadi
24 | - chaodaiG
25 | - chases2
26 | - Chen-Xintong
27 | - christian-posta
28 | - chizhg
29 | - CloudJason
30 | - cjwagner
31 | - cnvergence
32 | - costinm
33 | - craigbox
34 | - dapengJacky
35 | - davidhauck
36 | - dddddai
37 | - deveshkandpal1224
38 | - devincd
39 | - djannot
40 | - dgn
41 | - dhawton
42 | - douglas-reid
43 | - drivebyer
44 | - EItanya
45 | - ejj
46 | - eliavem
47 | - ericvn
48 | - fatedier
49 | - feeltimeQ
50 | - frankbu
51 | - GregHanson
52 | - gy95
53 | - hanxiaop
54 | - howardjohn
55 | - hueifeng
56 | - hzxuzhonghu
57 | - ilevine
58 | - ingwonsong
59 | - irisdingbj
60 | - jacob-delgado
61 | - jasonwzm
62 | - jewertow
63 | - jmazzitelli
64 | - jmunozro
65 | - johnma14
66 | - johnzheng1975
67 | - jtischer-acasi
68 | - jupblb
69 | - justinpettit
70 | - jwendell
71 | - jzhupup
72 | - kebe7jun
73 | - kerthcet
74 | - kdorosh
75 | - kfaseela
76 | - kinzhi
77 | - Kmoneal
78 | - kyessenov
79 | - l8huang
80 | - lambdai
81 | - ldemailly
82 | - lei-tang
83 | - lgadban
84 | - linsun
85 | - litong01
86 | - liwenhao0810
87 | - louiscryan
88 | - mandarjog
89 | - mathetake
90 | - Michelle951
91 | - Monkeyanator
92 | - morvencao
93 | - my-git9
94 | - myidpt
95 | - nicole-lihui
96 | - NiuYinlong1994
97 | - nmittler
98 | - nmnellis
99 | - npolshakova
100 | - nrjpoddar
101 | - orangegzx
102 | - ostromart
103 | - PetrMc
104 | - pinxiong
105 | - PiotrSikora
106 | - qfel
107 | - rcernich
108 | - richardwxn
109 | - riita10069
110 | - rinormaloku
111 | - rrobb-aspen
112 | - ruigulala
113 | - rveerama1
114 | - rvennam
115 | - ryantking
116 | - saltbo
117 | - sergii-ssh
118 | - shankgan
119 | - Shikugawa
120 | - shirleyyLi
121 | - shivanshu1333
122 | - shonecyx
123 | - shriramsharma
124 | - shuaijinchao
125 | - silenceshell
126 | - skyfirefrancisz
127 | - SpecialYang
128 | - stevenctl
129 | - stewartbutler
130 | - su225
131 | - tbarrella
132 | - therealmitchconnors
133 | - thisisnotapril
134 | - vikaschoudhary16
135 | - vince-0202
136 | - willowmck
137 | - windsonsea
138 | - wokeao
139 | - wuwuwuyanz
140 | - wzshiming
141 | - xiaomudk
142 | - xiaoyang-sde
143 | - xichengliudui
144 | - Xunzhuo
145 | - yangminzhu
146 | - yanrongshi
147 | - yashykt
148 | - ycai-aspen
149 | - ydFu
150 | - yingzhuivy
151 | - ymesika
152 | - YonkaFang
153 | - youhonglian
154 | - yskopets
155 | - yuval-k
156 | - yxxhero
157 | - ZackButcher
158 | - zackzhangkai
159 | - zaunist
160 | - zc2638
161 | - zhaohuabing
162 | - ZhengzheYang
163 | - zhlsunshine
164 | - zirain
165 | - ZiyangXiao
166 | - zouyee
167 |
--------------------------------------------------------------------------------
/steering/elections/2022/candidate-ceposta.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Christian Posta
3 | ID: ceposta
4 | info:
5 | - employer: Solo.io
6 | - slack: ceposta
7 | - twitter: christianposta
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I've been a very active member in the Istio community contributing on Slack, in Github, delivering public trainings/workshops, and publishing multiple books including Istio in Action. Recently, I was also very involved with the contribution of ambient mesh to Istio as well.
13 |
14 | ### Why I'm running
15 |
16 | Istio is the most dominant, most deployed service mesh in the world and I have been a contributor to this success. I want to see Istio continue this moment, especially going into the CNCF, and advocate on its behalf to drive innovation, more adoption, and build more community contributorship.
17 |
--------------------------------------------------------------------------------
/steering/elections/2022/candidate-craigbox.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Craig Box
3 | ID: craigbox
4 | info:
5 | - employer: TBA
6 | - slack: craigbox
7 | - twitter: craigbox
8 | -------------------------------------------------------------
9 |
10 | _I am leaving Google on the 10th of October and thus am running as an independent candidate in this election. My new employer is not currently involved in the Istio project._
11 |
12 | ### About me
13 |
14 | I have worked on Cloud Native since joining Google, supporting Kubernetes since 2014 and Istio since 2016. I have focused on the Istio project since 2020, joining the Steering Committee as a representative of Google. During that time, I have:
15 |
16 | - led the journey of Istio into the CNCF (within Google and within the community); including [application of Istio to the CNCF](https://istio.io/latest/blog/2022/istio-has-applied-to-join-the-cncf/), [due diligence](https://docs.google.com/document/d/1cQiigR5WHQHvo_krUXO6uEaGSB2dWNRkR0cHCAoF5QA/edit#) and [acceptance](https://istio.io/latest/blog/2022/istio-accepted-into-cncf/)
17 | - led the program to [overhaul Istio steering](https://istio.io/latest/blog/2020/steering-changes/), adding community representation and diversifying corporate representation beyond the project founders
18 | - designed & run the Contribution Seat selection process
19 | - run three Community Seat elections (including this one†)
20 | - led the redesign of istio.io, including adding advocacy material and improving readability of documentation
21 | - written announcement blogs for several key features (including [istiod](https://istio.io/latest/blog/2020/istiod/), [WebAssembly](https://istio.io/latest/blog/2020/wasm-announce/), and [ambient mesh](https://istio.io/latest/blog/2022/introducing-ambient-mesh/)
22 | - written release announcements for several minor releases
23 | - been a [top 10 contributor](https://istio.teststats.cncf.io/d/9/developer-activity-counts-by-repository-group-table?orgId=1&var-period_name=Last%20year&var-metric=contributions&var-repogroup_name=All&var-country_name=All) (last 12 months) with ~1,000 PR reviews total
24 | - served as Program Committee chair for IstioCon 2021 and mentor for PC chair for IstioCon 2022
25 | - increased support for our Chinse community by setting up dedicated IstioCon sessions in China's time zone, supporting Chinese documentation efforts and keynoting the [Istio Community Meetup in China](https://istio.io/latest/blog/2021/istio-community-meetup-china/)
26 | - administered the Istio Slack and led moderation for discuss.istio.io
27 | - represented the Istio project as Program Committee chair for multiple ServiceMeshCon events, including [the upcoming event](https://servicemeshconna22.sched.com/)
28 | - hosted the [Kubernetes Podcast](https://kubernetespodcast.com/), where I have featured many Istio team members: including [Justin and Ethan](https://kubernetespodcast.com/episode/189-ambient-mesh/), [Mitch](https://kubernetespodcast.com/episode/177-istiocon/), [Lin](https://kubernetespodcast.com/episode/086-invention-ibm-istio/), [Louis](https://kubernetespodcast.com/episode/058-istio-1.2/) and [Dan and Jasmine](https://kubernetespodcast.com/episode/015-istio/)
29 |
30 | ### Why I'm running
31 |
32 | I'm running for a Community Seat on the Steering Committee because I believe in the project and want to see it continue to grow. If elected, I look forward to continuing to drive the process of integration with the CNCF, and leading the project's application for graduated status in 2023. I will continue to work to have the perception of the project catch up with the change that has been made to simplify it, and work with vendors and the CNCF to get more investment into improving the project documentation.
33 |
34 | † _I have recused myself as an election officer as I am a candidate in the election._
35 |
--------------------------------------------------------------------------------
/steering/elections/2022/candidate-hzxuzhonghu.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Zhonghu Xu
3 | ID: hzxuzhonghu
4 | info:
5 | - employer: Huawei
6 | - slack: hzxuzhonghu
7 | -------------------------------------------------------------
8 |
9 | ### About me
10 |
11 | I have joined istio community for almost 5 years. Since then, I have collaborated with so many amazing guys to make istio efficient and successful.
12 | I witnessed the prosperity of service mesh and the evolution of istio from distributed components to monolithic istiod and maybe ambient mesh production ready next year.
13 |
14 | Being lucky to join istio at the very beginning, I am one of the top contributors in community and have made totally 14,160 contributions to istio community.
15 | And even today I am always keeping filing PRs, reviewing PRs and commenting issues every day. Because I am keen on istio, I am still working in the frontier.
16 | I always make myself encouraged and focused on istio community, last year I made nearly 4k contributions.
17 |
18 | I have done many other works these years:
19 |
20 | - served as a steering committee member in the last two years
21 | - a core maintainer of networking and security WG
22 | - one of the advocates of istio in China and also helped organize IstioCon in China
23 | - author of Cloud Native Service Mesh Istio, the best-selling service mesh book in China
24 | - publicly speaking about istio in KubeCon and IstioCon.
25 |
26 | ### Why I'm running
27 |
28 | I have been devoted to open source istio for the last five years.
29 | And as an experienced user/developer/maintainer, I would like to represent these groups to
30 | help make istio community:
31 |
32 | - neutral without bias
33 | - open without occlusion
34 |
35 | 2023 is a very important year, every one would want to see istio graduate from CNCF, I am very willing to grow with istio in the next year.
36 |
--------------------------------------------------------------------------------
/steering/elections/2022/candidate-irisdingbj.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Iris(Shaojun) Ding
3 | ID: irisdingbj
4 | info:
5 | - employer: Intel
6 | - slack: irisdingbj
7 | - twitter: irisdingbj
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | Iris has worked on Istio service mesh since 2019 and currently serves as maintainer for Environment working group, User Experience Working group and Security Working Group. She also has served as Istio steering committee member and Istio 1.6's release manager. She is actively contributing to Isito in terms of PR filing, reviewing and design discussions. She is committed to continue contributing to Istio. Some key features she contributed are:
13 |
14 | - External Control Plane
15 | - Multi certificate authority signer
16 | - IPv6 and Dual Stack support
17 | - CryptoMB support for TLS handshake
18 |
19 | She was an co-organizer for IstioCon 2021 and 2022. She is maintaining the Istio community Bilibili(The most popular Live broadcast platform in China) account and broadcast all our IstioCon videos which attracted many users/developers into Istio project. Iris also organized the first Istio Meetup China (https://istio.io/latest/blog/2021/istio-community-meetup-china/) in July,2021 together with other partners. The meetup has 292 people registered , 140 people attended on-site in person, 2000 people watching online at peak time via Istio's Bilibili account. These activities enlarged Istio's influence in service mesh eco-system greatly.
20 |
21 | ### Why I'm running
22 |
23 | Iris is an open source enthusiast and is passionate about contributing and advocating for Istio in the service mesh industry and helping users adopt Istio successfully. If elected, she would love to help out with various aspects of making Istio successful, such as fostering a smooth and happy environment for developers, contributors and users, and providing neutral mediation for non-technical disputes. She would love to help new contributors to get started and get more contributions to Istio project.
24 |
25 |
--------------------------------------------------------------------------------
/steering/elections/2022/candidate-kfaseela.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Faseela K
3 | ID: kfaseela
4 | info:
5 | - employer: Ericsson Software Technology
6 | - slack: Faseela K
7 | -------------------------------------------------------------
8 |
9 | ### About me
10 |
11 | I am a comparatively new member to Istio, and have been making contributions to the project in terms of code, code reviews, design discussions and conferenece presentations for the last one year. Though my tenure has been short I was able to make contributions to the project across multiple areas including networking, security, documentation and integration tests, and is currently a Documentation Maintainer for Istio. Some of the features that I worked on include:
12 |
13 | - Enhancing Supply Chain Security for Istio through SBOMs
14 | - Auto SNI and SAN support
15 | - Credential Name support for Sidecar TLS Origination
16 | - Simplifying multiple istiod in single cluster deployments
17 | - WorkloadSelector support for DestinationRule
18 |
19 | I have been a speaker at the previous IstioCon, and have also conducted different sessions speaking about ServiceMesh and Istio in specific,
20 | including a recent hoot livestream on Istio 1.14 release. I am a key member of the 5G Transformation Team in my organization, and my focus is on successfully including Istio in our 5G journey!
21 |
22 | ### Why I'm running
23 |
24 | I would like to represent the voice of Telco users in the Istio Community by running in this election. Though Istio has a great team leading from the forefront, I believe 5G Transofrmation is one of the major areas where Istio could play a key role, and it is quite important to represent and steer this journey at an organizational level(including the recent Ambient Mesh announcement). I have peviously served in the Steering Committee of other LinuxFoundation projects like OpenDaylight, where my responsibilities included giving high level directions for the project as well as interfacing with other CNCF projects to work out possible integrations for new innovative solutions. I have been an opensource evangelist trying to make opensource reach more and more people through University presentations, conferences, free workshops, and student mentoring. I have also served as a LinuxFoundation mentor for University Students. By being in the Steering committee, my goal would be to bring more traction for Istio among new comers, students, and of course 5G Telco users. I would also be interested in improving the "Women in Istio" community by offering all technical/non-technical support. As Istio is stepping towards being a CNCF member, I would be happy to apply my previous experience being part of similar projects, and steer better visibility for Istio.
25 |
--------------------------------------------------------------------------------
/steering/elections/2022/candidate-zackbutcher.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Zack Butcher
3 | ID: zackbutcher
4 | info:
5 | - employer: Tetrate
6 | - slack: ZackButcher
7 | - twitter: ZackButcher
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I'm a contributor to Istio and a Founding Engineer at Tetrate. I co-authored _Istio: Up and Running_ and help actively develop microservice security standards with the [National Institute of Standards and Technology (NIST)](https://www.nist.gov/) through _[NIST SPs 800-204A, Building Secure Microservices-based Applications Using Service-Mesh Architecture](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-204A.pdf)_ and _[SP 800-204B, Attribute-based Access Control for Microservices-based Applications using a Service Mesh](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-204B.pdf)_. These have also been adopted by industry standards including the [FFIEC](https://ithandbook.ffiec.gov/it-booklets/architecture,-infrastructure,-and-operations/vii-evolving-technologies/viic-microservices.aspx) and by the US Federal Government as part of [CISA](https://www.cisa.gov/)'s _[Cloud Technical Reference Architecture](https://www.cisa.gov/sites/default/files/publications/Cloud%20Security%20Technical%20Reference%20Architecture.pdf)_.
13 |
14 | At Tetrate I help enable Istio adoption in enterprise organizations around the world. I help direct our product strategy, extending OSS Istio to meet the needs of complex enterprise use cases, and help oversee Tetrate's work on Envoy -- which powers Istio. I work day-in and day-out with teams deploying Istio in production serving critical traffic. Before Tetrate, I worked at Google as one of the earliest members of the Istio team -- I helped design and implement the (now-defunct) Mixer component and helped design and implement Istio's Networking APIs.
15 |
16 | I currently sit in my second term as a community-elected member of Istio's Steering Committee, where I also help lead the Code of Conduct (CoC) sub-committee.
17 |
18 | ### Why I'm running
19 |
20 | For the last two years I've helped bring empathy, balance, and a user-focus to the Steering Committee. My experience with Istio deployments at large, highly regulated organizations (including banks, payment card processors, the DoD, and others) across many industries as well as my relationships with the existing Steering members makes me uniquely suited to continue to help guide the project.
21 |
--------------------------------------------------------------------------------
/steering/elections/2022/election.yaml:
--------------------------------------------------------------------------------
1 | name: 2022 Steering Committee Election
2 | organization: Istio
3 | start_datetime: 2022-10-03 00:00:01
4 | end_datetime: 2022-10-16 11:59:59
5 | no_winners: 4
6 | allow_no_opinion: True
7 | delete_after: True
8 | show_candidate_fields:
9 | - employer
10 | - slack
11 | - twitter
12 | election_officers:
13 | - rvennam
14 | - cetezadi
15 | eligibility: A [project member](https://github.com/istio/community/blob/master/ROLES.md#member) who has had at least one Pull Request merged in the past 12 months. See [the election guide](https://github.com/istio/community/tree/master/steering/elections/2022)
16 | exception_description: People who have demonstrated contribution to the Istio project that is of a non-code nature in the 12 months prior to the election can be granted a vote for the election by a simple majority vote of the Steering Committee.
17 | exception_due: 2022-10-13 11:59:59
--------------------------------------------------------------------------------
/steering/elections/2022/election_desc.md:
--------------------------------------------------------------------------------
1 | The Istio Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term. Please see the [election guide](https://github.com/istio/community/tree/master/steering/elections/2022) for more information.
2 |
3 | ## About the committee
4 |
5 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
6 |
7 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
8 |
9 | - Establishing and enforcing principles to guide the Istio project.
10 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
11 | - Defining, evolving, and defending a Code of Conduct.
12 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
13 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
14 |
15 | The top four candidates who are employed by a unique Company (as defined in the Charter) shall be deemed to be elected.
16 |
--------------------------------------------------------------------------------
/steering/elections/2022/nomination-template.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Your Name
3 | ID: github-id
4 | info:
5 | - employer: Your Employer or "Independent"
6 | - slack: Slack handle
7 | -------------------------------------------------------------
8 |
9 |
11 |
12 | Here's a paragraph about my contributions to Istio.
13 |
14 | Here's a paragraph about why I'm running.
15 |
--------------------------------------------------------------------------------
/steering/elections/2022/voters.yaml:
--------------------------------------------------------------------------------
1 | # 2022 Steering Committee Election
2 | ##################################
3 | #
4 | # The process for determining elegible voters can be found in
5 | # (https://github.com/istio/community/tree/master/steering/elections/2022
6 | #
7 | # If you feel you have standing in the Istio community but are not listed here,
8 | # please fill in the voting exception form (https://forms.gle/ucNfjUN6ruzJ3mL26).
9 | # If your application is approved by a simple majority vote of the Steering Committee,
10 | # you will be added.
11 | #
12 | # History:
13 | # 2022-09-19: List generated from the [members](/org/members.yaml) file, checking for at
14 | # least one merged PR as noted by istio-policy-bot in the period 19 September 2021 to 19 September 2022.
15 | # 2022-10-03: Istio Steering Committee members added
16 | # 2022-10-04: Ambient Mesh team added by exception request
17 | #
18 | eligible_voters:
19 | - Aakash2017
20 | - abhijoglekar
21 | - AdamKorcz
22 | - AllenZMC
23 | - ameer00
24 | - AndreaM12345
25 | - andrewshaoyu
26 | - angaluri
27 | - Arhell
28 | - aryan16
29 | - bianpengyuan
30 | - birkland
31 | - cetezadi
32 | - chaodaiG
33 | - chases2
34 | - Chen-Xintong
35 | - christian-posta
36 | - chizhg
37 | - CloudJason
38 | - cjwagner
39 | - cnvergence
40 | - costinm
41 | - craigbox
42 | - dapengJacky
43 | - davidhauck
44 | - dddddai
45 | - deveshkandpal1224
46 | - devincd
47 | - djannot
48 | - dgn
49 | - dhawton
50 | - douglas-reid
51 | - drivebyer
52 | - EItanya
53 | - ejj
54 | - eliavem
55 | - ericvn
56 | - fatedier
57 | - feeltimeQ
58 | - frankbu
59 | - GregHanson
60 | - gy95
61 | - hanxiaop
62 | - howardjohn
63 | - hueifeng
64 | - hzxuzhonghu
65 | - ilevine
66 | - ingwonsong
67 | - irisdingbj
68 | - jacob-delgado
69 | - jasonwzm
70 | - jewertow
71 | - jmazzitelli
72 | - jmunozro
73 | - johnma14
74 | - johnzheng1975
75 | - jtischer-acasi
76 | - jupblb
77 | - justinpettit
78 | - jwendell
79 | - jzhupup
80 | - kebe7jun
81 | - kerthcet
82 | - kdorosh
83 | - kfaseela
84 | - kinzhi
85 | - Kmoneal
86 | - kyessenov
87 | - l8huang
88 | - lambdai
89 | - ldemailly
90 | - lei-tang
91 | - lgadban
92 | - linsun
93 | - litong01
94 | - liwenhao0810
95 | - louiscryan
96 | - mandarjog
97 | - mathetake
98 | - Michelle951
99 | - Monkeyanator
100 | - morvencao
101 | - my-git9
102 | - myidpt
103 | - nicole-lihui
104 | - NiuYinlong1994
105 | - nmittler
106 | - nmnellis
107 | - npolshakova
108 | - nrjpoddar
109 | - orangegzx
110 | - ostromart
111 | - PetrMc
112 | - pinxiong
113 | - PiotrSikora
114 | - qfel
115 | - rcernich
116 | - richardwxn
117 | - riita10069
118 | - rinormaloku
119 | - rrobb-aspen
120 | - ruigulala
121 | - rveerama1
122 | - rvennam
123 | - ryantking
124 | - saltbo
125 | - sergii-ssh
126 | - shankgan
127 | - Shikugawa
128 | - shirleyyLi
129 | - shivanshu1333
130 | - shonecyx
131 | - shriramsharma
132 | - shuaijinchao
133 | - silenceshell
134 | - skyfirefrancisz
135 | - SpecialYang
136 | - stevenctl
137 | - stewartbutler
138 | - su225
139 | - tbarrella
140 | - therealmitchconnors
141 | - thisisnotapril
142 | - vikaschoudhary16
143 | - vince-0202
144 | - willowmck
145 | - windsonsea
146 | - wokeao
147 | - wuwuwuyanz
148 | - wzshiming
149 | - xiaomudk
150 | - xiaoyang-sde
151 | - xichengliudui
152 | - Xunzhuo
153 | - yangminzhu
154 | - yanrongshi
155 | - yashykt
156 | - ycai-aspen
157 | - ydFu
158 | - yingzhuivy
159 | - ymesika
160 | - YonkaFang
161 | - youhonglian
162 | - yskopets
163 | - yuval-k
164 | - yxxhero
165 | - ZackButcher
166 | - zackzhangkai
167 | - zaunist
168 | - zc2638
169 | - zhaohuabing
170 | - ZhengzheYang
171 | - zhlsunshine
172 | - zirain
173 | - ZiyangXiao
174 | - zouyee
175 |
--------------------------------------------------------------------------------
/steering/elections/2023/README.md:
--------------------------------------------------------------------------------
1 | # 2023 Istio Steering Committee election guide
2 |
3 | The Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term.
4 |
5 | ## Background
6 |
7 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
8 |
9 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
10 |
11 | - Establishing and enforcing principles to guide the Istio project.
12 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
13 | - Defining, evolving, and defending a Code of Conduct.
14 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
15 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
16 |
17 | ## Schedule
18 |
19 | | Date | Event |
20 | |--------------------|---------------------------------------------------------------------|
21 | | July 18 | Announcement of Election and publication of voters.yaml |
22 | | July 30 | Candidate bios and voting exception forms due by 2359 UTC (5pm PDT) |
23 | | July 31 | Election begins via Elekto UI |
24 | | August 13 | Election closes at 2359 UTC (5pm PDT) |
25 | | week of August 14 | Winners announced |
26 |
27 | ## Candidacy process
28 |
29 | Eligibility for candidacy is defined in the [Steering Committee charter](../../CHARTER.md) as a [project member](../../../ROLES.md#member) who does not work for a Company that holds a Contribution Seat.
30 |
31 | Members from **Google**, **IBM**, **Red Hat** and **Huawei** are therefore **ineligible** to stand in this election.
32 |
33 | If you want to stand for election, open a PR against the [istio/community repository](https://github.com/istio/community) to include
34 | your candidate profile in the `/steering/elections/2023` folder, with the file named in the format `candidate-yourname.md`. We have included [a template file](nomination-template.md) as an example. This profile should include:
35 |
36 | - Your name
37 | - Your GitHub ID
38 | - Your company affiliation (employer or otherwise)
39 | - Your contributions to Istio
40 | - Why you are running
41 |
42 | Once you have created the PR, you may encourage endorsements as comments on it. After a candidate has met all election requirements, the Election Officers will merge the profile PR.
43 |
44 | If you want to nominate someone else, you may do so, but please confirm their interest first.
45 |
46 | ## Voting process
47 |
48 | Eligibility to vote is defined in the [Steering Committee charter](../../CHARTER.md) as either:
49 |
50 | - a project member who has had at least one Pull Request merged in the past 12 months, or
51 | - someone who has submitted the [voting exception form](https://forms.gle/2WmEsUbAQMz7QnwR6) and has been accepted by the steering committee as having standing in the community.
52 |
53 | Elections will be held using [Elekto](https://elekto.dev/), an online voting tool
54 | created for the CNCF. Elekto has one critical advantage over CIVS, which is that
55 | it uses GitHub OAuth to log you in to vote, instead of relying on email.
56 |
57 | Thus, when you go to Elekto, you will be prompted to log in your GitHub account.
58 | You will then be able to click on "Explore Election" to look at the list of
59 | elections, and select the "2023 Istio Steering Committee Election."
60 |
61 | The election page will, among other things, confirm if you are eligible to vote,
62 | via a button at the top of the screen.
63 |
64 | As candidates file their candidate statements in the community repo, they will
65 | become visible in the Elekto UI. You may click through to any candidate to see
66 | their profile.
67 |
68 | Once the vote begins, you will be able to rank the candidates in the order of
69 | your preference, and submit your ballot. When you submit, you will be offered
70 | a chance to set a password, which is required if you want the ability to return
71 | and re-cast your ballot before August 13th.
72 |
73 | All data is stored on cloud infrastructure maintained by the election officers,
74 | and is not shared with third parties. Individual ballot data is encrypted, and
75 | not retrievable by anyone except in aggregate form.
76 |
77 | The top four candidates who are employed by a unique Company (as defined in the
78 | Charter) shall be deemed to be elected.
79 |
80 | ### Election officers
81 |
82 | - [Cameron Etezadi](https://github.com/cetezadi), Google
83 | - [Ram Vennam](https://github.com/rvennam), Solo.io
84 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-ZackButcher.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Zack Butcher
3 | ID: ZackButcher
4 | info:
5 | - employer: Tetrate
6 | - slack: ZackButcher
7 | - twitter: ZackButcher
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 |
13 | I began working on Istio in 2016 as one of the original engineers on the project. In the seven years since then, I worked on Mixer, before shifting to focus on Pilot and Istio's networking APIs. I am proud to have served two terms as a community elected member of Istio's Steering Committee, from 2020-2022. During that tenure I also served as one of the charter members of the Code of Conduct subcommittee. I've served as reviewer for several IstioCons and co-chair the upcoming IstioCon 2023.
14 |
15 |
16 | Before Istio, I worked across GCP helping deliver enterprise features like the resource hierarchy (projects, folders, orgs), IAM, and service management. I left Google in 2018 to help start Tetrate — a company built around Istio — and have worn many hats, from engineering to marketing to devrel to sales. The entire time, my focus has been on furthering Istio adoption across industry. To that end, I co-authored _Istio: Up and Running_ (O'Rielly, 2019), speak regularly on Istio at conferences, on podcasts, and in print around the world.
17 |
18 |
19 | I actively work with the National Institute of Standards and Technology (NIST) to author special publications providing guidance on microservice security and zero trust — all of which focus on the service mesh, Istio, as a key piece of the security architecture: [NIST SP 800-204A](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-204A.pdf), [NIST SP 800-204B](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-204B.pdf), and [NIST SP 800-207A](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207A.ipd.pdf). These guidelines are being adopted by governments and major industries like banking as the cornerstone of their strategy moving forward — helping ensure Istio will continue to grow and flourish for years to come.
20 |
21 |
22 | ### Why I'm running
23 |
24 |
25 | I strongly believe in Istio — so much so that I've bet most of my professional career on it. I'm passionate about seeing the project succeed, and have a track record of being a balanced and reasonable voice both inside and outside the community. I advocate for what's best for the project, not for any particular company or vendor. As Istio and its community continue to grow and evolve, I believe I’m well suited to advocate for the health and growth of the project, internally as well as externally.
26 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-craigbox.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Craig Box
3 | ID: craigbox
4 | info:
5 | - employer: ARMO
6 | - slack: craigbox
7 | - twitter: craigbox
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I led Istio's transfer to, and [graduation within](https://istio.io/blog/2023/istio-graduates-within-cncf/), the CNCF.
13 |
14 | I worked on Cloud Native at Google for 8 years, including a primary focus on Istio from 2020 until I left in 2022. For the last 12 months, I have held a Community Seat - ARMO is not involved in the Istio project but supports my continued involvement. On the Steering Committee, I do a lot of project administration, including coordinating between vendors, managing our events strategy, and mentoring new project leaders.
15 |
16 | Other things I've done for Istio include designing its web site, writing release announcements, supporting the creation of the GAMMA project, and chairing IstioCon. (See [here](https://elections.istio.io/app/elections/2022/candidates/craigbox) for a full list.)
17 |
18 | ### Why I'm running
19 |
20 | I continue to enjoy being involved in administering the Istio project, and provide context and continuity within the leadership group. As Istio moves into its next phase as a graduated CNCF project, and the Ambient Mesh project moves to production readiness, there will be work required to update our messaging to the market. I look forward to helping with this.
21 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-irisdingbj.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Iris(Shaojun) Ding
3 | ID: irisdingbj
4 | info:
5 | - employer: Intel
6 | - slack: irisdingbj
7 | - twitter: irisdingbj
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | Iris Ding has joined istio community for almost 5 years. She has collaborated with many contributors to make istio efficient, extensible and successful. She is actively contributing to Isito in terms of PR filing, reviewing, design discussions, conference presentation/organization, blogging etc. She is a maintainer for Istio User Experience, Environment and Security working groups. She has served in Istio steering committe for last two terms and also Istio 1.6's release manager. She is serving as program committee member for `Istio Day` and `Istio Con`. She is also proud of having supported our [CNCF graduation journey](https://istio.io/blog/2023/istio-graduates-within-cncf/).
13 |
14 | ### Why I'm running
15 |
16 | Iris is an open source enthusiast and is passionate about contributing and advocating for Istio in the service mesh industry and helping users adopt Istio successfully. If elected, she would love to help out with various aspects of making Istio successful, such as fostering a smooth and open environment for developers, contributors and users, providing neutral mediation for non-technical disputes, advocating Istio new fatures. She would love to help new contributors to get started and get more contributions to Istio project.
17 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-kebe7jun.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Kebe Liu
3 | ID: kebe7jun
4 | info:
5 | - employer: DaoCloud
6 | - slack: Kebe Liu
7 | - twitter: kebe7jun
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I lead the Istio team at DaoCloud. My active involvement with the Istio community commenced in 2019 and since then, I have made significant contributions in several fields such as Environment and User Experience. Moreover, I have pioneered the Chinese translation of Istio from its version 1.9, thereby facilitating its spread and increased contribution within China. In parallel, in my capacity as an Istio service provider, I have successfully guided many Chinese enterprises towards the effective utilization of Istio in production environments.
13 | My participation in a multitude of community activities is consistent and proactive, which include events such as IstioCon, KCD, and Meetups. I am dedicated to disseminating information about the latest developments and best practices of Istio.
14 | In my endeavor to support Istio, I have initiated projects such as Merbridge. It is a venture based on eBPF acceleration for Istio that enhances the assurance of enterprises when opting for Istio.
15 |
16 | ### Why I'm running
17 |
18 | With the recent graduation of the Istio project, it is my belief that its user base will expand progressively. I aim to disseminate our experiences to a wider audience to aid them in comprehending and utilizing Istio more effectively. Concurrently, I persist in motivating more individuals to engage in the Istio community, with the joint objective of fostering the community's growth. I am delighted to participate in the development and discussion of new features in Istio and am committed to ongoing contributions to the community.
19 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-keithmattix.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Keith Mattix
3 | ID: keithmattix
4 | info:
5 | - employer: Microsoft
6 | - slack: keithmattix
7 | - twitter: keithmattix
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I lead the Istio team at Microsoft, and facilitated the integration of the team behind Open Service Mesh into the Istio community. I first got involved with Istio as an end-user of the project in 2020, and since then, I have been active in the service mesh community as a maintainer of Service Mesh Interface, a founder of Gateway API's GAMMA initiative, a maintainer on Istio's Product Security Working Group. Lately, I've been spending a lot of my time driving the design and implementation of Istio Ambient mesh.
13 |
14 | ### Why I'm running
15 |
16 | I believe an emphasis on accessibility is important for Istio's continued success. New users need robust APIs, lowered total cost of ownership, and a minimal barrier to entry; I am encouraged by the progress we've made on Ambient mesh to address these needs! New contributors need the support of effective community processes an onboarding ramp of good first issues. I feel that my experiences as an end-user, relatively new contributor, and maintainer have given me a unique perspective that would aid my service to the Istio community. I would be honored to serve on the steering committee and help Istio continue to grow and thrive.
17 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-kfaseela.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Faseela K
3 | ID: kfaseela
4 | info:
5 | - employer: Ericsson Software Technology
6 | - slack: Faseela K
7 | - twitter: faseelakundattil
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I have been making contributions to Istio for the last 1.5 years in terms of code, code reviews, design discussions, conferenece presentations and blogging. Though my tenure has been short, I was able to make contributions to the project across multiple areas including networking, security, documentation, integration tests, and marketing, and is currently a Documentation and Test and Release Maintainer for Istio. I have served in the Istio Steering Committee in the last term, and have co-chaired the first `Istio Day` co-located with KubeCon Europe, which was very well received by the audience. I am also proud of having supported our [CNCF graduation journey](https://istio.io/blog/2023/istio-graduates-within-cncf/), being a Steering Committee member. I am excited to be chairing the upcoming `Istio Day` co-located with KubeCon North America as well.
13 |
14 | I have been a speaker at various previous KubeCon, IstioCon and other events, and have also conducted several sessions speaking about ServiceMesh and Istio in specific. I am a key member of the Telco 5G Transformation Team in my organization, and my focus is on successfully including Istio in our 5G journey!
15 |
16 | ### Why I'm running
17 |
18 | I would like to continue representing the voice of Telco users in the Istio Community by running in this election. Though Istio has a great team leading from the forefront, I believe 5G Transofrmation is one of the major areas where Istio could play a key role, and it is quite important to represent and steer this journey at an organizational level, including the recent Ambient Mesh advancements. I have been an opensource evangelist trying to make opensource reach more and more people through University presentations, conferences, free workshops, and student mentoring. I have also served as a LinuxFoundation mentor for University Students. By being in the Steering committee, my goal would be to bring more traction for Istio among new comers, students, and of course 5G Telco users, by making our message to market more visible. I have been actively supporting the "Women in Istio" community by offering all technical/non-technical support, and would love to continue doing that.
19 |
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-linsun.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Lin Sun
3 | ID: linsun
4 | info:
5 | - employer: solo.io
6 | - slack: linsun
7 | - twitter: linsun_unc
8 | -------------------------------------------------------------
9 |
10 | ### About me
11 |
12 | I have been deeply involved with the Istio service mesh since its inception in 2017 and currently serve on the Istio Technical Oversight Committee. As an Istio maintainer, I actively contribute to various working groups, including Build Test Release (BTR), Networking, and Environment. My responsibilities extend to maintaining the overall Istio repository, the enhancements repository, and other repositories within the Istio-ecosystem organization. With over 8500 contributions (including 350+ PRs) to the Istio project, I am dedicated to continuing my support and contributions to its development (source: [Istio’s devstats](https://istio.teststats.cncf.io/d/66/developer-activity-counts-by-companies)).
13 |
14 | I have authored two books, "Istio Explained" and "Istio Ambient Explained," to help users easily grasp the concepts of Istio. As a passionate advocate of Istio and service mesh technology, I regularly speak at cloud-native conferences worldwide and actively blog on platforms like CNCF, InfoQ, and The New Stack, sharing my excitement and technical insights about Istio and ambient mesh. Recently, I have been closely collaborated with Istio contributors to launch ambient last September, drive ambient to alpha in May, and now to beta stage next.
15 |
16 | In the past, I had the honor of serving as the conference co-chair for IstioCon 2021 and 2022, as well as being part of the Istio Steering Committee for four years. Additionally, I took on the roles of Istio 1.2’s release manager, BTR’s working group lead, and a member of Istio’s Product Security working group.
17 |
18 | ### Why I'm Running
19 |
20 | As an open-source enthusiast, I firmly believe that Istio will emerge as the dominant service mesh in the industry. My passion lies in advocating for Istio and assisting users in successfully adopting this powerful platform. If elected, I am committed to contributing to various aspects that will make Istio a resounding success.
21 |
22 | My primary goals include promoting Istio as a simple and exciting solution, ensuring its clear differentiation and relationship with other projects within the cloud-native ecosystem. I aim to establish guiding principles for the project's development, fostering a positive environment that benefits developers, contributors, vendors, and users alike. Moreover, I am prepared to provide neutral mediation for non-technical disputes, ensuring a harmonious community.
23 |
24 | Being fluent in both English and Chinese, I can effectively address concerns raised within our diverse English and Chinese community, further strengthening Istio's global outreach.
--------------------------------------------------------------------------------
/steering/elections/2023/candidate-therealmitchconnors.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Mitch Connors
3 |
4 | ID: therealmitchconnors
5 |
6 | info:
7 | - employer: Aviatrix
8 | - slack: Mitch Connors
9 | - twitter: mitchashimself
10 | -------------------------------------------------------------
11 |
12 |
14 |
15 | ### About me
16 |
17 | I joined the Istio project in 2018, and serve in a variety of roles, including leading our User Experience and Upgrade work, serving on the technical oversight committee, and hosting events, including our first ever in person event, Istio Day EU 2023. I am a CNCF Ambassador, and spend a lot of time at conferences, blog posts, and podcasts, sharing how Istio interacts with other CNCF technologies, such as Argo, Flux, and Crossplane. Though I've been a software engineer for 18 years, my five years at Istio represent the longest time I've spent on any one project. The Istio project feels like home to me, and I look forward to many more years of delivering best in class service mesh experience to our users.
18 |
19 | ### Why I'm running
20 |
21 | I am incredibly proud of what we've all accomplished together, from v1.0 in 2018 to our Graduation this year! In order to continue in our tradition of excellence, I believe the steering committee is in need of two changes.
22 |
23 | First, the committee needs to make significant moves towards openness and transparency. Today, all steering committee meetings are closed, and all votes are secret. This makes it very difficult to cast an intelligent vote for a community seat, as voters are unaware of the candidatess voting record, or even if they regularly attend scheduled meetings. Moreover, this level of secrecy is inappropriate for a major CNCF project. This can be easily corrected by making meetings open to the public, and using a publicly accessible voting platform, such as that used by the CNCF TOC.
24 |
25 | Second, the committee needs to identify policies and procedures that reflect the new makeup of the Istio project. Our previous structure of multiple working groups where designs are discussed and approved was discarded 18 months ago, as it was causing undue burden on forward progress of new features and improvements. Unfortunately, we have yet to develop new structures, so the project has operated for the last year without a clear process for design reviews and approvals, or feature maturity progression. What worked for Istio years ago as an independent project may not work for us today as a CNCF Graduated Project, and the Steering Committee needs to take responsibility for restructuring the project in a way that makes sense for us today, so that we can begin to follow our own policies and procedures.
26 |
27 | I believe that great things are ahead for the Istio Project, and I hope you will join me in ensuring that the Istio Steering Committee meets the needs of our project for years to come. Thank you.
28 |
--------------------------------------------------------------------------------
/steering/elections/2023/election.yaml:
--------------------------------------------------------------------------------
1 | name: 2023 Steering Committee Election
2 | organization: Istio
3 | start_datetime: 2023-07-31 00:00:01
4 | end_datetime: 2023-08-13 11:59:59
5 | no_winners: 4
6 | allow_no_opinion: True
7 | delete_after: True
8 | show_candidate_fields:
9 | - employer
10 | - slack
11 | - twitter
12 | election_officers:
13 | - rvennam
14 | - cetezadi
15 | eligibility: A [project member](https://github.com/istio/community/blob/master/ROLES.md#member) who has had at least one Pull Request merged in the past 12 months. See [the election guide](https://github.com/istio/community/tree/master/steering/elections/2023)
16 | exception_description: People who have demonstrated contribution to the Istio project that is of a non-code nature in the 12 months prior to the election can be granted a vote for the election by a simple majority vote of the Steering Committee.
17 | exception_due: 2023-07-30 11:59:59
--------------------------------------------------------------------------------
/steering/elections/2023/election_desc.md:
--------------------------------------------------------------------------------
1 | The Istio Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term. Please see the [election guide](https://github.com/istio/community/tree/master/steering/elections/2023) for more information.
2 |
3 | ## About the committee
4 |
5 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
6 |
7 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
8 |
9 | - Establishing and enforcing principles to guide the Istio project.
10 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
11 | - Defining, evolving, and defending a Code of Conduct.
12 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
13 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
14 |
15 | The top four candidates who are employed by a unique Company (as defined in the Charter) shall be deemed to be elected.
16 |
--------------------------------------------------------------------------------
/steering/elections/2023/nomination-template.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Your Name
3 | ID: github-id
4 | info:
5 | - employer: Your Employer or "Independent"
6 | - slack: Slack handle
7 | - twitter: Twitter username
8 | -------------------------------------------------------------
9 |
10 |
12 |
13 | ### About me
14 |
15 | Here's a paragraph about my contributions to Istio.
16 |
17 | ### Why I'm running
18 |
19 | Here's a paragraph about why I'm running.
20 |
--------------------------------------------------------------------------------
/steering/elections/2023/voters.yaml:
--------------------------------------------------------------------------------
1 | # 2023 Steering Committee Election
2 | ##################################
3 | #
4 | # The process for determining eligible voters can be found in
5 | # https://github.com/istio/community/tree/master/steering/elections/2023
6 | #
7 | # If you feel you have standing in the Istio community but are not listed here,
8 | # please fill in the voting exception form (https://forms.gle/2WmEsUbAQMz7QnwR6).
9 | # If your application is approved by a simple majority vote of the Steering Committee,
10 | # you will be added.
11 | #
12 | # History:
13 | # 2023-07-18: List generated from the [members](/org/members.yaml) file, checking for at
14 | # least one merged PR as noted by devstats in the period 17 July 2022 to 17 July 2023.
15 | # List also includes Steering Committee members who are deemed to have standing.
16 | # https://docs.google.com/spreadsheets/d/1dGGkrwXoZMVoV3kBoBDofcUYYbM9ouwnPgcZgSBLPlY/edit#gid=977915417
17 | #
18 | eligible_voters:
19 | - 12345XXX
20 | - aakash2017
21 | - abasitt
22 | - AdamKorcz
23 | - adiprerepa
24 | - Adityayxt
25 | - aimuz
26 | - akshayjnambiar
27 | - ameer00
28 | - andream12345
29 | - antonioberben
30 | - Arhell
31 | - arkodg
32 | - aryan16
33 | - asa3311
34 | - astronaut0131
35 | - birkland
36 | - bleggett
37 | - briansonnenberg
38 | - bzsuni
39 | - cebernardi
40 | - cetezadi
41 | - charles-chenzz
42 | - chaunceyjiang
43 | - Chen-Xintong
44 | - christian-posta
45 | - cjwagner
46 | - cnvergence
47 | - costinm
48 | - craigbox
49 | - ctrath
50 | - daixiang0
51 | - danehans
52 | - dddddai
53 | - deva26
54 | - deveshkandpal1224
55 | - devincd
56 | - dgn
57 | - dhawton
58 | - douglas-reid
59 | - ebinbabu
60 | - EItanya
61 | - ericvn
62 | - FangtingYan
63 | - fatedier
64 | - fengshunli
65 | - find-arka
66 | - Fish-pro
67 | - frankbu
68 | - giantcroc
69 | - GregHanson
70 | - gssjl2008
71 | - haiyuewa
72 | - hanxiaop
73 | - helen-frank
74 | - hemendrateli
75 | - howardjohn
76 | - huan555
77 | - hypernovasunnix
78 | - hzxuzhonghu
79 | - idouba
80 | - ilevine
81 | - ilrudie
82 | - imroc
83 | - ingwonsong
84 | - irisdingbj
85 | - jacob-delgado
86 | - jaellio
87 | - JarHMJ
88 | - jewertow
89 | - jiecloud
90 | - jiuker
91 | - jjtischer
92 | - jmazzitelli
93 | - john-a-joyce
94 | - johndlong
95 | - johnma14
96 | - johnzheng1975
97 | - jongwooo
98 | - justedennnnn
99 | - justinpettit
100 | - jwendell
101 | - jzhupup
102 | - kdorosh
103 | - kebe7jun
104 | - keithmattix
105 | - kevin-shelaga
106 | - kfaseela
107 | - KfreeZ
108 | - Kmoneal
109 | - krapie
110 | - krisztianfekete
111 | - ksubrmnn
112 | - kyessenov
113 | - l8huang
114 | - lei-tang
115 | - lgadban
116 | - liangyongzhenya
117 | - linsun
118 | - LithiumSR
119 | - litong01
120 | - liwenhao0810
121 | - louiscryan
122 | - maxbischoff
123 | - miaoyq
124 | - Monkeyanator
125 | - MorrisLaw
126 | - mt-inside
127 | - my-git9
128 | - myshkin5
129 | - nacx
130 | - nameYULI
131 | - nicksors
132 | - nicole-lihui
133 | - NiuYinlong1994
134 | - nmittler
135 | - nmnellis
136 | - nrjpoddar
137 | - nshankar13
138 | - obaranov1
139 | - Pawan-Bishnoi
140 | - Penguin-zlh
141 | - peterj
142 | - PetrMc
143 | - phillipgibson
144 | - pinxiong
145 | - PiotrSikora
146 | - PlatformLC
147 | - pmerrison
148 | - qfel
149 | - RachaelLuo
150 | - ramaraochavali
151 | - rcernich
152 | - richardwxn
153 | - richincapie
154 | - rinormaloku
155 | - rokkiter
156 | - rootsongjc
157 | - Rose-Solo
158 | - rrobb-aspen
159 | - ruigulala
160 | - rveerama1
161 | - rvennam
162 | - saltbo
163 | - samzong
164 | - sergii-ssh
165 | - shankgan
166 | - shashankram
167 | - shonecyx
168 | - SkyfireFrancisZ
169 | - Songjoy
170 | - SpecialYang
171 | - SRodi
172 | - sschepens
173 | - stevenctl
174 | - Stevenjin8
175 | - stewartbutler
176 | - tanberBro
177 | - tangming1996
178 | - tanjunchen
179 | - therealmitchconnors
180 | - thisisnotapril
181 | - ty-dc
182 | - wei06159
183 | - whitneygriffith
184 | - wilsonwu
185 | - windsonsea
186 | - wlp1153468871
187 | - wlq1212
188 | - wulianglongrd
189 | - wuwuwuyanz
190 | - wzshiming
191 | - xiaomudk
192 | - xichengliudui
193 | - Xieql
194 | - Xunzhuo
195 | - yanggangtony
196 | - yankay
197 | - yanrongshi
198 | - ydFu
199 | - yeedove
200 | - yingzhuivy
201 | - yitingdc
202 | - ymesika
203 | - YonkaFang
204 | - youhonglian
205 | - yskopets
206 | - yulng
207 | - yuval-k
208 | - yxxhero
209 | - ZackButcher
210 | - zengyuxing007
211 | - zhanghw0354
212 | - zhaohuabing
213 | - ZhengzheYang
214 | - zhlsunshine
215 | - Zhuzhenghao
216 | - zinuga
217 | - zirain
218 | - ZiyangXiao
219 | - zufardhiyaulhaq
220 |
--------------------------------------------------------------------------------
/steering/elections/2025/README.md:
--------------------------------------------------------------------------------
1 | # 2025 Istio Steering Committee election guide
2 |
3 | The Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term.
4 |
5 | ## Background
6 |
7 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
8 |
9 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
10 |
11 | - Establishing and enforcing principles to guide the Istio project.
12 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
13 | - Defining, evolving, and defending a Code of Conduct.
14 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
15 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
16 |
17 | ## Schedule
18 |
19 | | Date | Event |
20 | |--------------------|---------------------------------------------------------------------|
21 | | February 12 | Announcement of Election and publication of voters.yaml |
22 | | March 2 † | Candidate bios and voting exception forms due by 2359 UTC (5pm PDT) |
23 | | March 3 | Election begins via Elekto UI |
24 | | March 16 | Election closes at 2359 UTC (5pm PDT) |
25 | | week of March 17 | Winners announced |
26 |
27 | _† Please note an extra week has been added to the originally announced schedule._
28 |
29 | ## Candidacy process
30 |
31 | Eligibility for candidacy is defined in the [Steering Committee charter](../../CHARTER.md) as a [project member](../../../ROLES.md#member) who does not work for a Company that will hold a Contribution Seat during the upcoming term.
32 |
33 | Members from **Solo.io**, **Microsoft**, **Huawei**, **Google** and **Tetrate** are therefore **ineligible** to stand in this election.
34 |
35 | If you want to stand for election, open a PR against the [istio/community repository](https://github.com/istio/community) to include
36 | your candidate profile in the `/steering/elections/2025` folder, with the file named in the format `candidate-githubid.md`. We have included [a template file](nomination-template.md) as an example. This profile should include:
37 |
38 | - Your name
39 | - Your GitHub ID
40 | - Your company affiliation (employer or otherwise)
41 | - Your contributions to Istio
42 | - Why you are running
43 |
44 | Once you have created the PR, you may encourage endorsements as comments on it. After a candidate has met all election requirements, the Election Officers will merge the profile PR.
45 |
46 | If you want to nominate someone else, you may do so, but please confirm their interest first.
47 |
48 | ## Voting process
49 |
50 | Eligibility to vote is defined in the [Steering Committee charter](../../CHARTER.md) as either:
51 |
52 | - a project member who has had at least one Pull Request merged in the past 12 months, or
53 | - someone who has submitted the [voting exception form](https://forms.gle/WRgXEwdqR166eghTA) and has been accepted by the steering committee as having standing in the community.
54 |
55 | Elections will be held using [Elekto](https://elekto.dev/), an online voting tool
56 | created for the CNCF. Elekto has one critical advantage over CIVS, which is that
57 | it uses GitHub OAuth to log you in to vote, instead of relying on email.
58 |
59 | Thus, when you go to Elekto, you will be prompted to log in your GitHub account.
60 | You will then be able to click on "Explore Election" to look at the list of
61 | elections, and select the "2025 Istio Steering Committee Election."
62 |
63 | The election page will, among other things, confirm if you are eligible to vote,
64 | via a button at the top of the screen.
65 |
66 | As candidates file their candidate statements in the community repo, they will
67 | become visible in the Elekto UI. You may click through to any candidate to see
68 | their profile.
69 |
70 | Once the vote begins, you will be able to rank the candidates in the order of
71 | your preference, and submit your ballot. When you submit, you will be offered
72 | a chance to set a password, which is required if you want the ability to return
73 | and re-cast your ballot before March 9th.
74 |
75 | All data is stored on cloud infrastructure maintained by the election officers,
76 | and is not shared with third parties. Individual ballot data is encrypted, and
77 | not retrievable by anyone except in aggregate form.
78 |
79 | The top four candidates who are employed by a unique Company (as defined in the
80 | Charter) shall be deemed to be elected.
81 |
82 | ### Election officers
83 |
84 | - [Craig Box](https://github.com/craigbox), Solo.io
85 |
--------------------------------------------------------------------------------
/steering/elections/2025/candidate-kfaseela.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Faseela K
3 | ID: kfaseela
4 | info:
5 | - employer: Ericsson Software Technology
6 | - slack: Faseela K
7 | -------------------------------------------------------------
8 |
9 | ### About me
10 |
11 | I am a contributor to Istio across multiple areas including networking, security, documentation, integration tests, and marketing for more than three years, and is currently a Documentation, Test and Release Maintainer for the project. I have served in the Istio Steering Committee since 2022, and I am the release manager for the upcoming Istio releases including Istio 1.25. I am the co-chair for the upcoming KubeCon EU + NA 2025, responsible for curating high quality technical content for the event. I have served as the event co-chair for both the IstioDays co-located with KubeCon in 2023 as well as IstioCon virtual, and have been a Program Committee member at a number of KubeCons and IstioDays. I have given talks and workshops at several conferences evangelizing CNCF projects, including the recent KubeCons, Open Networking Summit, Opensource Summit, Grace Hopper Conference etc. I have also driven the work for publishing the Istio Phippy character - Izzy to the cloud-native world and co-authored the Istio Phippy Book - “Izzy saves the Birthday”, which was launched at KubeCon NA, 2024. I have worked together with the CNCF Training and Certification team in shaping the ICA (Istio Certified Associate) exam which was launched in 2024. I am also the winner of the prestigious CNCF “Chop Wood Carry Water” award for the year 2023 - a recognition given to community members helping behind the scenes, dedicating countless hours to open source projects, hosting and building community meetups, and often completing thankless tasks for the benefit of the community.
12 |
13 | I am currently serving as a CNCF Ambassador, and part of the cncf-women community to envision ways to empower and mentor more female contributors to the technical stream of the CNCF projects. I have also recently started to be involved in the CNCF TAG Contributor Strategy with focus on the mentoring working group. I am the organizer of the new CNCG(Cloud Native Community Group) in Aachen, Germany - Cloud Native Aachen.
14 |
15 | I have played a pivotal role in collaborating with the Kubernetes supply chain security team, to integrate the Kubernetes/bom utility for use by external projects like Istio. I am proud of being involved in the 5G transformation of Ericsson, designing Cloud Native Network Functions, bridging the gap between telco and opensource, which enabled the telecom industry to begin its journey to becoming Cloud Native. I also had the privilege to mentor students as part of the LFX program, which I consider as one of the most fulfilling experiences. Some of my mentees have later been able to travel to KubeCons to present their work, and later been actively involved in CNCF projects as core contributors.
16 |
17 | I have been a speaker at various previous KubeCon, IstioCon and other events, and have also conducted several sessions speaking about ServiceMesh and Istio in specific. I am a key member of the Telco 5G Transformation Team in my organization, and my focus is on successfully including Istio in our 5G journey!
18 |
19 | ### Why I'm running
20 |
21 | I would like to continue representing the voice of Telco users in the Istio Community by running in this election. Though Istio has a great team leading from the forefront, I believe 5G Transofrmation is one of the major areas where Istio could play a key role, and it is quite important to represent and steer this journey at an organizational level, including the recent Ambient Mesh advancements. I have been an opensource evangelist trying to make opensource reach more and more people through University presentations, conferences, free workshops, and student mentoring. I have also served as a LinuxFoundation mentor for University Students. By being in the Steering committee, my goal would be to bring more traction for Istio among new comers, students, and of course 5G Telco users, by making our message to market more visible. I have been actively supporting the "Women in Istio" community by offering all technical/non-technical support, and would love to continue doing that.
22 |
--------------------------------------------------------------------------------
/steering/elections/2025/candidate-pnambiarsf.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Pratima Nambiar
3 | ID: pnambiarsf
4 | info:
5 | - employer: Salesforce
6 | - slack: Pratima Nambiar
7 | -------------------------------------------------------------
8 |
9 | ### About me
10 |
11 | Pratima is the Lead Architect for the Hyperforce Infrastructure Platform, built on public cloud. She leads the teams that build and operate Service Mesh and Ingress Gateway for a large part of Salesforce.
12 |
13 | ### Why I'm running
14 |
15 | We use Istio at Salesforce, and I would like to contribute to its continued success and shaping its direction.
16 |
--------------------------------------------------------------------------------
/steering/elections/2025/candidate-rcernich.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Rob Cernich
3 |
4 | ID: rcernich
5 |
6 | info:
7 | - employer: Red Hat, Inc.
8 | - slack: Rob Cernich
9 | -------------------------------------------------------------
10 |
11 | ### About me
12 |
13 | I lead the the team within Red Hat who support and maintain Istio and Envoy.
14 | I have been a member of the Istio Steering Committee for the past three and
15 | a half years. Prior to that, I worked on various areas of Istio, most notably
16 | adding the generation of proper Kubernetes type objects to istio/api, which
17 | could be used with standard Kubernetes go-client tooling. I am also an Istio
18 | maintainer.
19 |
20 | I have worked with opensource communities for over 20 years across various
21 | organizations, including The Eclipse Foundation, JBoss.org, and Istio. I am
22 | a strong believer in the benefits of open source software, and believe in
23 | putting community interests first. Without vibrant communities, open source
24 | would not be the same.
25 |
26 | ### Why I'm running
27 |
28 | I would like to work with Istio leadership to find ways to grow the Istio
29 | community. I would like to see more avenues for contributions, e.g. the
30 | sail-operator; things which might improve users' experiences with Istio, but
31 | may not be applicable as part of the core engine. I am a strong believer in
32 | open source software and will do my best to advocate on behalf of _all_ members
33 | of the Istio community.
34 |
35 |
--------------------------------------------------------------------------------
/steering/elections/2025/candidate-wilsonwu.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Wilson Wu
3 | ID: wilsonwu
4 | info:
5 | - employer: DaoCloud
6 | - slack: Wilson Wu
7 | -------------------------------------------------------------
8 |
9 | ### About me
10 |
11 | Software Development Expert with almost 20 years of experience in Cloud Native, Enterprise Solution and Engineering Management. Highly experienced in Container, Microservices, DevOps, AI, Open Source and R&D Team Management. As Top Open-Source projects maintainer and member roles such as Kubernetes, Istio, Argo CD and so on. Ex-Microsoft Evangelist and ex-Philips Architect. Focus on Software Engineering Management now and keep up with advanced technology.
12 |
13 | ### Why I'm running
14 |
15 | As a member of the Istio community, I always pay attention to the development of service mesh technology represented by Istio, and participate in the latest community updates as soon as possible. In the past few years, I have focused on the maintenance of Istio Chinese documents, and am committed to helping users who use Chinese as a common language to obtain Istio's various technical updates as quickly as possible. While contributing Chinese documents, I also help improve the quality of English documents. Based on these contributions, I have a deep understanding of the implementation logic of Istio's various updates and related functions, which allows me to better apply them to the design of commercial mesh products at work. In the future, I still hope to continue to participate in Istio's related work and strive to expand the contribution content from documents to actual functions. Thank you!
16 |
--------------------------------------------------------------------------------
/steering/elections/2025/election.yaml:
--------------------------------------------------------------------------------
1 | name: 2025 Steering Committee Election
2 | organization: Istio
3 | start_datetime: 2025-03-03 00:00:01
4 | end_datetime: 2025-03-16 11:59:59
5 | no_winners: 4
6 | allow_no_opinion: True
7 | delete_after: True
8 | show_candidate_fields:
9 | - employer
10 | - slack
11 | - twitter
12 | election_officers:
13 | - craigbox
14 | eligibility: A [project member](https://github.com/istio/community/blob/master/ROLES.md#member) who has had at least one Pull Request merged in the past 12 months. See [the election guide](https://github.com/istio/community/tree/master/steering/elections/2025)
15 | exception_description: People who have demonstrated contribution to the Istio project that is of a non-code nature in the 12 months prior to the election can be granted a vote for the election by a simple majority vote of the Steering Committee.
16 | exception_due: 2025-03-02 11:59:59
--------------------------------------------------------------------------------
/steering/elections/2025/election_desc.md:
--------------------------------------------------------------------------------
1 | The Istio Steering Committee is composed of nine (9) Contribution Seats and four (4) Community Seats. The role of this election is to elect the four Community Seats to the Istio Steering Committee for a one-year term. Please see the [election guide](https://github.com/istio/community/tree/master/steering/elections/2025) for more information.
2 |
3 | ## About the committee
4 |
5 | The Istio Steering Committee oversees the administrative aspects of the project, including governance, marketing and community health. Steering exists to allow the Technical Oversight Committee to exclusively focus on the technical aspects of the project.
6 |
7 | Some direct responsibilities of steering members to consider as you are deciding whether to run or who to vote for:
8 |
9 | - Establishing and enforcing principles to guide the Istio project.
10 | - Fostering an environment for a healthy and happy community of developers, contributors, vendors, and users.
11 | - Defining, evolving, and defending a Code of Conduct.
12 | - Setting marketing and advocacy direction for the project; establishing a publishing schedule and vetting content, encouraging and assisting community members in creating content for conferences, fostering an ecosystem of vendors.
13 | - Providing neutral mediation as appropriate to try to resolve non-technical disputes that arise as part of the project.
14 |
15 | The top four candidates who are employed by a unique Company (as defined in the Charter) shall be deemed to be elected.
16 |
--------------------------------------------------------------------------------
/steering/elections/2025/nomination-template.md:
--------------------------------------------------------------------------------
1 | -------------------------------------------------------------
2 | name: Your Name
3 | ID: github-id
4 | info:
5 | - employer: Your Employer or "Independent"
6 | - slack: Slack handle
7 | - twitter: Twitter username
8 | -------------------------------------------------------------
9 |
10 |
12 |
13 | ### About me
14 |
15 |
17 |
18 | ### Why I'm running
19 |
20 |
21 |
--------------------------------------------------------------------------------
/steering/elections/2025/voters.yaml:
--------------------------------------------------------------------------------
1 | # 2025 Steering Committee Election
2 | ##################################
3 | #
4 | # The process for determining eligible voters can be found in
5 | # https://github.com/istio/community/tree/master/steering/elections/2025
6 | #
7 | # If you feel you have standing in the Istio community but are not listed here,
8 | # please fill in the voting exception form (https://forms.gle/WRgXEwdqR166eghTA).
9 | # If your application is approved by a simple majority vote of the Steering Committee,
10 | # you will be added.
11 | #
12 | # History:
13 | # 2025-02-12: List generated from the [members](/org/members.yaml) file, checking for at
14 | # least one merged PR as noted by devstats in the period 12 Feb 2024 to 12 Feb 2025.
15 | # List also includes Steering Committee members who are deemed to have standing.
16 | # https://docs.google.com/spreadsheets/d/1C4edZEx9PPTApmLL3OmOI5LsGpmkgvWQvQY5IkCndww/edit?gid=663020041#gid=663020041
17 | #
18 | eligible_voters:
19 | - abhijoglekar
20 | - adamkorcz
21 | - adilmp1
22 | - andygol
23 | - anirbannandi
24 | - antonioberben
25 | - arhell
26 | - arijitvt
27 | - arjayara01
28 | - aryan16
29 | - asa3311
30 | - bincherry
31 | - bleggett
32 | - bochengchu
33 | - briansonnenberg
34 | - clarkjohnd
35 | - costinm
36 | - craigbox
37 | - daixiang0
38 | - danehans
39 | - dddddai
40 | - deveshkandpal1224
41 | - dgn
42 | - dhawton
43 | - dio
44 | - dwj300
45 | - ericdbishop
46 | - ericvn
47 | - find-arka
48 | - frankbu
49 | - hanxiaop
50 | - hemendrateli
51 | - howardjohn
52 | - hzxuzhonghu
53 | - ilrudie
54 | - ingwonsong
55 | - irisdingbj
56 | - jacob-delgado
57 | - jaellio
58 | - jessicegao
59 | - jewertow
60 | - jiecloud
61 | - jjamroga
62 | - jmazzitelli
63 | - jmcshane
64 | - joaopgrassi
65 | - johnzheng1975
66 | - jongwooo
67 | - justinpettit
68 | - juwon8891
69 | - jwendell
70 | - kanurag94
71 | - kebe7jun
72 | - keithmattix
73 | - kfaseela
74 | - ksubrmnn
75 | - kuromesi
76 | - kyessenov
77 | - lei-tang
78 | - leosarra
79 | - lgadban
80 | - linsun
81 | - liu-xg
82 | - lizhencheng9527
83 | - longmuir
84 | - louiscryan
85 | - luksa
86 | - m4ver1k
87 | - mayuan-02
88 | - mike-weiner
89 | - mikemorris
90 | - morepork
91 | - morrislaw
92 | - my-git9
93 | - nacx
94 | - nicole-lihui
95 | - nilekhc
96 | - nshankar13
97 | - peterj
98 | - platformlc
99 | - ramaraochavali
100 | - rcernich
101 | - richincapie
102 | - rootsongjc
103 | - rsalmond
104 | - rudrakhp
105 | - saiskee
106 | - sanchit-20
107 | - sergii-ssh
108 | - shuayb1
109 | - specialyang
110 | - srampal
111 | - sridhargaddam
112 | - srinivassurishetty
113 | - sschepens
114 | - stevenctl
115 | - stevenjin8
116 | - thedebugger
117 | - therealmitchconnors
118 | - tjons
119 | - unicell
120 | - visheshtha
121 | - whitneygriffith
122 | - wilsonwu
123 | - winbobob
124 | - windsonsea
125 | - wulianglongrd
126 | - ydfu
127 | - yuval-k
128 | - ZackButcher
129 | - zengyuxing007
130 | - zirain
131 |
--------------------------------------------------------------------------------
/steering/elections/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @istio/steering-committee
2 | * @istio/election-officers
3 |
--------------------------------------------------------------------------------
/steering/elections/README.md:
--------------------------------------------------------------------------------
1 | # Elections
2 |
3 | The Istio Steering Committee is composed of Contribution Seats and Community Seats. Each year we hold an election to appoint four community members to the Committee.
4 |
5 | * [2025 Election](./2025)
6 | * [2023 Election](./2023)
7 | * [2022 Election](./2022)
8 | * [2021 Election](./2021)
9 | * [2020 Election](./2020)
10 |
--------------------------------------------------------------------------------