Skip to content

Commit

Permalink
Merge branch 'main' into 1397-type-adjudicators
Browse files Browse the repository at this point in the history
  • Loading branch information
samayer12 committed Nov 22, 2024
2 parents 8ecce94 + 2da08c2 commit 70c1178
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 37 deletions.
79 changes: 45 additions & 34 deletions docs/090_roadmap/README.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,68 @@
# Roadmap for Pepr

_2024 Roadmap_
## Phase 1: Preparation - Testing and Docs

- **Q1**:
- **Establish Medium for Communication with Community**:
Establish communication channel for community members and contributors. Easy/discoverable "how to contribute" guide.
- Establish communication channel for community members and contributors. Easy/discoverable "how to contribute" guide.
- **Site/Documentation**:
Improve information architecture, nail killer use-cases, and make it obvious how to get started and find your way around.
- Improve information architecture, nail killer use-cases, and make it obvious how to get started and find your way around.
- **Automated Testing**:
Focus on stories that increase confidence in protection of features and functionality. Simplify hello-pepr and bring e2e test against external repo with examples. Make sure that contributions are well-tested.
- Focus on stories that increase confidence in protection of features and functionality. Simplify hello-pepr and bring e2e test against external repo with examples. Make sure that contributions are well-tested.

## Phase 2: Community Building, Competitive Analysis, and Feature Development
## Phase 2: Community Building, Competitive Analysis, Instrumentation and Feature Development

- **Q2**:
- **Community Engagement**:
Begin engaging with potential contributors and users through social media, Kubernetes/Cloud Native Computing Foundation (CNCF) meetups, and other channels. Monitor and participate in our Slack channel.
- Begin engaging with potential contributors and users through social media, Kubernetes/Cloud Native Computing Foundation (CNCF) meetups, and other channels. Monitor and participate in our Slack channel.
- **Feature Development**:
Based on company feedback, continuously improve and add features. Add feature parity with other tools in the Kubernetes ecosystem where it makes sense. Chip away at the backlog.
- Based on company feedback, continuously improve and add features. Add feature parity with other tools in the Kubernetes ecosystem where it makes sense. Chip away at the backlog.
- **Documentation Improvements**:
Continue to improve documentation and add more examples like Doom, find scaling limitations
- Continue to improve documentation and add more examples like Doom, find scaling limitations
- **Competitive Analysis**:
Understand the competitive landscape and how/where Pepr can/does differentiate itself. Have it in the docs.
- Understand the competitive landscape and how/where Pepr can/does differentiate itself. Have it in the docs.
- **Instrumentation**:
- Outfit Pepr with the necessary instrumentation to collect metrics and logs. Use this data to make informed about the watch direction.

## Phase 3: Donation, Transition, Move Project, and Stabilization/Improvement of New Features
## Phase 3: Informer Iterations, Watch Analysis, Metric Collection, Development/Stabilization/Improvement of New Features

- **Q3**:
- **Donation**:
- Donate the project to the CNCF.
- CNCF Code of conduct
- CNCF IP policy
- CNCF CLA
- Discoverable and simple governance model
- move project to its own organization
- ensure license in Apache 2.0
- Transfer trademark, logo, domain name, and other assets to CNCF.
- **Community Building**:
Grow the contributor base, establish a governance model, and encourage community-led initiatives. Interact with people in our Slack channel.
- **Informer Iterations**:
- Tune informer based on feedback from UDS Core and delivery so events will be reconciled through eventual consistency.
- [Evaluate](https://github.com/defenseunicorns/pepr/blob/main/adr/0015-kfc-watch-undici.md) other underlying technologies for informer.
- **Feature Development**:
Based on community feedback, continuously improve and add features. Rigoursly test and document and review code.
- `.WithNameRegex()/.InNamespaceRegex()` for Kubernetes Controller development against resources that could match a variety of names or namespaces.
- `.WithDeletionTimestamp()` for Kubernetes Controller Development against resources that are pending deletion
- Create a sharded queue that enables the Module Author to define queueing strategies based on `kind`, `kind/namespace`, `kind/namespace/name`, `global`.
- **Community Building**:
- Grow the contributor base, establish a governance model, and encourage community-led initiatives. Look to drive conversation in our Slack Channel.
- Based on community feedback, continuously improve and add features. Rigoursly test and document and review code.
- **Project Advocation**:
Publicly advocate for the project and encourage adoption.
- **Submit PR for Sandbox**
- Submit sandbox PR when ready
- Publicly advocate for the project and encourage adoption.
- **Stability**:
- Ensure that the project is stable and reliable. Make sure that the project is well-tested and documented.
- Identify new areas of project improvement and work on them.

## Phase 4: Post Donation
## Phase 4: Feature Development, Stablization, Code and Testing Quality Improvements

- **Q4**:
- **Road to GA**:
Right now, Pepr itself is still in its 'development' phase. We are working on some final things before we release the official 1.0 General Availability (GA) release
- **Community Meetings**:
- Monthly community meetings/steering committee meetings/contributor meetings
- **Review Sandbox PR**
- Review PR for sandbox
- **Road to Incubation**:
- to come
- **Features**:
- Improve DevEx overrides in Pepr section of package.json for customized builds of Modules
- `.Finalize()` for Kubernetes Controller Development to controlling downstream resources through finalizers
- Scaffolding to validate images from a registry through cosign/sigstore
- Replace node-fetch with Undici in the KFC project for performance improvements
- **Removal of Circular Dependencies**:
Identify and remove circular dependencies in the codebase.
- **Strong Typings**:
- Identify where we can make Pepr/KFC stronger by adding typings.
- **Work to reduce code complexity**
- Monitor code complexity through eslint, work to drive down complexity
- **Robust E2E Tests in KFC**:
- Create a strong e2e suite in KFC, ensure tests are robust and cover all the features of KFC.
- **Documentation**:
- Ensure that the documentation is up-to-date and accurate. Add more examples and use-cases.
- Onboarding and contribution guides should be clear and easy to follow.
- **Load/Stress Testing**:
- Load test Pepr/KFC to identify bottlenecks and areas of improvement.
- Ensure that Pepr/KFC can handle a large number of resources and events over a sustained period of time (nightly).

2 changes: 1 addition & 1 deletion src/cli/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { Option } from "commander";
import { validateCapabilityNames, parseTimeout } from "../lib/helpers";
import { sanitizeResourceName } from "../sdk/sdk";
import { determineRbacMode } from "./build.helpers";
import { createDirectoryIfNotExists } from "../lib/filesystemHelpers";
import { createDirectoryIfNotExists } from "../lib/filesystemService";
const peprTS = "pepr.ts";
let outputDir: string = "dist";
export type Reloader = (opts: BuildResult<BuildOptions>) => void | Promise<void>;
Expand Down
2 changes: 1 addition & 1 deletion src/lib/assets/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { apiTokenSecret, service, tlsSecret, watcherService } from "./networking
import { watcher, moduleSecret } from "./pods";

import { clusterRoleBinding, serviceAccount, storeRole, storeRoleBinding } from "./rbac";
import { createDirectoryIfNotExists } from "../filesystemHelpers";
import { createDirectoryIfNotExists } from "../filesystemService";
export class Assets {
readonly name: string;
readonly tls: TLSOut;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: 2023-Present The Pepr Authors

import { describe, jest, expect, it } from "@jest/globals";
import { createDirectoryIfNotExists } from "./filesystemHelpers";
import { createDirectoryIfNotExists } from "./filesystemService";
import { promises as fs } from "fs";

jest.mock("fs", () => {
Expand Down
File renamed without changes.

0 comments on commit 70c1178

Please sign in to comment.