├── .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 | EasyCLA bot 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 | GitHub EasyCLA Authorization 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 | EasyCLA 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 | --------------------------------------------------------------------------------